http://support.microsoft.com/kb/810218
In essence - when you do a Server.Redirect("SomePage.aspx?SomeParam=SomeValue") .NET conveniently will make that SomeParam persisted over the subsequent requests - i.e. if SomePage.aspx contains a form to be submitted, that form's action will be rewritten to include this param. Neat? No! How do you clear a querystring parameter no longer used? You can't. At least not elegantly.
This is why I prefer J2EE - you have to work harder, but you almost never have to implement workarounds to work around unneeded high level features.