Just a quick note on the new Browser History feature in .NET 3.5 SP1. I had some time to experiment with beta 1. Because of its long gestation period as part of the ASP Futures package, it has been written about a lot. However, as is the curse of beta software, there is a 'breaking change' between the b1 release and the futures package version that many blog articles write about.
The feature is still enabled using the EnableHistory attribute on your page's ScriptManager object.
<asp:ScriptManager runat="server" id="sm1" EnableHistory="true" />
However, the EnableStateHash attribute which you can use to have ASP.NET encrypt or not encrypt the page state in its querystring has been renamed. It is now called EnableSecureHistoryState.