Software of the type you linked to has to be custom written as each site's exact needs are too different from other sites to be generic.
At the end of the day it is just a series of linked forms so what you need is to embed a hidden field in each form that is simply a number and then process the form via a common structure like so
switch( $formNumber ) {
case 1: include 'form1';
break;
case 2: include 'form2';
break;
case 3: include 'form3';
break;
default: include 'startForm';
break;
}
and as you move from form to form store the information gathered in $_SESSION. When you get to the last form, all the information in the session can be pulled out and stored in a database table. The beauty of using the session is that if they abandon it halfway through then you do not need to worry about having half-complete information in the database.