Have you looked at using InfoPath and then use an event handler to populate your list. We did this with a Conference Room/Classroom Scheduling process. The InfoPath form has dependant fields that open other fields for input;e.g., if the Video Teleconferencing box is checked, additional input fields open for information that is required for the VTC. The event handler post the information to an Event list in a pending mode.