One should be able to create a paginated form, with each page's fields possibly dependent on values submitted on previous pages.