If you were on a newer version of the Framework I would recommend the Wizard control.
However, I had a situation similar to yours when we were still on 1.1 as well, and what I did was basically come up with my own Wizard control. It was a bit of a "hack" but it was the best I could come up with at the time. I don't know if anyone will come up with a better suggestion (and I'm sure there are better, less ugly ways of accomplishing this), but here is how we handled it:
What we did was, instead of having the different steps in different pages, we put them in different ASP:Panel controls on one page. We named the panels "PanelStep1", "PanelStep2" and so forth.
At any rate, we kept track of the current index in a hidden form field, and set the visible panel based on the value.
This method is ugly, but it would resolve the issue of disallowing a user from navigating top a next step page (by having the steps all in one page) and also allows you to control the Current Index (by setting the hidden form field's value on whatever events you need to use for setting the index). It keeps the index out of the URL, etc.
It also provides the benefit of having ALL of the gathered information available in one page. I don't know if you're passing information from one step to another, or updating a bit if info in a database on each page, etc, but if you want to do it all at once, this would be an option.