質問: なかなか回答がつかなかったので再投稿です。
回答: これは3.のdon'tでないといけません。2.のshouldn'tという否定形はこのようなif節では使えないのです。ただ,理論的にはそれほどむずかしい問題ではありません。 こういう場合のshouldは,想像や推測を表している助動詞なのですが,もともと「~ということが存在すると仮定して」というような原義を持っています(今回の例では,「予約行為があったと仮定して」という意味)。つまり,何かがありそうなことを仮定するための語ですから,その否定形「~がなさそうなこと」は具合が悪いからです。同じことがhad betterについても言えます。これの否定形had better notはshouldの場合と異なり,誤りではありませんが,本来的語義とは異なる使い方になります。 従って,mis***さんの説明が的を射ていることになります。この回答者さんが提示なさっている例でわかると思いますが,If you shouldn't make ~はまずいので,否定的意味を出したいのならばIf you should fail to make ~などとするのがいいということになります。 らうんどさんが条件法云々を説明していますが,そのようなことではありません。というか,何か誤解をされているようです。それでも質問者さんは理解しようと努力なさっているようですね。しかし,お気の毒ですが,らうんどさんの説明は高校水準の英語学習には難解なうえに,一部ちょっと的外れです。また誤りがいくつか含まれています。説明が膨大になるので,らうんどさんの誤り,誤解などを修正しませんが,理解努力はほどほどになさった方がよろしいかと...。