As Amadiere wrote, [RequireHttps] works great in MVC 2 for entering HTTPS. But if you only want to use HTTPS for some pages as you said, MVC 2 doesn't give you any love - once it switches a user to HTTPS they're stuck there until you manually redirect them.
The approach I used is to use another custom attribute, [ExitHttpsIfNotRequired]. When attached to a controller or action this will redirect to HTTP if:
- The request was HTTPS
- The [RequireHttps] attribute wasn't applied to the action (or controller)
- The request was a GET (redirecting a POST would lead to all sorts of trouble).
It's a bit too big to post here, but you can see the code here plus some additional details.