The way other applications do it is with AJAX and CSS.
On those applications they have you click a continue button and then via AJAX they send the data to a server side script. The reply from that server side script can cause a new div to be shown using CSS. This is done by just taking a hidden div, with the new form and displaying it in place of the previous form. And the previous form is then hidden but with the data still in place.
Usually sites that do it this way make it obvious that you can go back to the previous "pages" either by having each page in a tab and/or having a custom back button in the page. And if the user does click the browser back button before the final submit you use the "onunload" event handler to trigger a prompt to ask them if they wanted to leave the page before saving the data.
If you want to make sure they don't click the back button open the form in a new window using javascript to make sure the navigation buttons are not displayed.
window.open('http://www.yoursite.com/yourform.php','yourwindow','width=750,height=600,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1')
You could then even take that one step future and make a custom navigation bar at the top that mimics their browsers navigation bar, in appearance but when they click the buttons they run javascript functions that look to do something similar to the browser, but without the errors or accidentally leaving the form page.