I just finished watching Stefan Schackow's PDC 2009 session and he mentioned that he is surprised that people are still using Session State in ASP.NET. Session State is even used internally in ASP.NET MVC.
Having worked with a legacy application where everything is put into a "in-proc" session (even datatables!), I've seen session abuse first-hand.
Is there a way to build an ASP.NET application without session state? How would you store information for each step of a typical e-commerce workflow?