Bom, existem diversas maneiras
Uma delas, seria dividir o formulário em várias div's.
Aí, mostra a primeira, e oculta as demais.
Ao clicar em "Próximo", mostra a próxima div e oculta a anterior, e assim consecutivamente.
A vantagem essa maneira é que todo o formulário é enviado de uma única vez, e não aos poucos.
Outra maneira, seria fazendo vários formulários, e enviando um por vez.
Assim, armazena os dados temporáriamente em sessões (Ou, cookies), e depois junta tudo e joga na base.
Existe até um plugin do jQuery pra isso, chamado "jQuery Form Wizard" (Nunca precisei usar, esbarrei com ele ontem).
Disponível em:
http://thecodemine.org/