一般的に、最新の OS 向けに開発し、最終段階で古い OS をサポートしようとするのはあまり良い考えではないと思います。サポートしようとしている最も古い OS より後に導入された API を使用している場合は、それらの API を使用しないようにコードを書き直す必要があります。一般的には、問題を起こす価値はありません。
そうは言っても、古い OS をサポートする秘訣はありません。サポートしようとしている最も古い OS で利用可能な API (クラス、メソッド、関数) のみを使用するようにする必要があります。ドキュメントを見ると、各メソッドの「可用性」の下に、そのメソッドが含まれている OS のバージョンが示されていることがわかります。何かのようなもの:
提供状況
Mac OS X v10.6 以降で利用可能。
ターゲットにしている OS バージョンで利用できない API を使用しないと仮定すると、デプロイ ターゲットをターゲットにしている最も低い OS に設定してビルドするだけで済みます。もちろん、サポートしている各 OS バージョンについても徹底的にテストする必要があります。
Leopard と Snow Leopard で発生している「クラッシュの問題」について詳しく説明していただければ、質問への回答がより簡単になります。