After reading the multi-step wizard and trying to implement it I went and made a plugin. It works a little differently, but gets rid of a lot of the code that goes along with this recipe. You can check it out at http://github.com/Adkron/actsaswizard/tree/master Patches are welcome.
If anyone has had a chance to look at the plugin please let me know what you think.
the plugin is now free of acts_as_state_machine and can be used with models that are not active record based.
Another option at http://github.com/jeffp/wizardly for a quick and configurable wizard