[eluser]TheFuzzy0ne[/eluser]
You could use a series of if statements and test the userdata to see what's been submitted and what hasn't, but it's starting to sound complicated...
I'm going to change my mind and say that keeping everything separate would probably be best. You could just give each method the logic to tell whether the user has submitted the preceding page. Checking for userdata that should have been set previously should do it, and you can redirect if they are trying to bypass. I say this because there will be a problem with using the back button if your use a single controller method, and I'd assume you want to give your visitors the chance to go back if they need to.