I have to admit that I haven't developed a "wizard" framework yet in .NET, I've just been stacking panels on top of each other, naming them step1...stepN and then showing and hiding them as necessary. Not exactly an easy-to-reuse approach, but it works. Justin Rogers, a developer who has worked on the GDN Workspaces system, the ASP.NET forums, Terrarium and more... has released an article on his blog that details a structured approach to create a Windows Forms Wizard:

A slightly better WinForms wizard, and slightly more work.

Abstract:
I commented that there were some optimizations we could make to the basic wizard described in my previous article Make a Wizard faster than you can take a Wiz.  The primary items of interest were getting rid of the custom message pump, which shouldn't be too hard, and wondering if we could add in some validation logic.  I'm going to take an intermediate step before I get to the validation logic and clean up the look of the UI using an extra layer of abstraction from the original dialog only design.

Update: Justin has posted a 3rd installment in this series...