みなさん、画面遷移制御ってどうしてますか??

ユーザが正しい画面フローで遷移して来ず、
IEの「お気に入り」やURLの直打ちでやってくる場合、
更新確認画面などはSessionのnullチェックをしないと
NullPointerExceptionで落ちてしまいます。

私が思いつくのは下記なのですが、何かいい案や、「俺はこうしてる」など
あれば教えてください。

1.Sessionのnullチェックを毎回行い、nullであれば
「不正な画面遷移ですException」を投げ、Global.asaxでcatchして
不正な画面遷移ですエラー画面へ飛ばす。

2.落ちたらシステムエラー、システム障害とする。

3.基底クラスなど使ってガッチガチな画面遷移制御ロジックを作りこむ。

何か楽な方法ないっすか。