I recently registered my daughter for a week of summer camp at Dartmouth Sportsplex. It was a painful 6 field form; it made me work way too hard.
The bulk of the page described the camps that were available and the registration link was at the bottom (a few screens down!) Here are the form fields and my reaction to them.

Program Name, Level(be specific if a combined class) and Age group - I had to scroll back up the page to get the program name - they are all very clever but unmemorable such as 'Sportsplex Got Talent'. I certainly know my daughters age but had to check the group she fit into. But what the heck is a level? The word level doesn’t appear anywhere in the program descriptions. Not a sweet clue what to enter but I wasted a few minutes before giving up.
Program Participant: OK, I know what this is, but how about some plain language: Child's Name
Day &/or Date of Program: Most camps are offered 2 different weeks during the summers, so it is necessary to specify. But I had to scroll back up to the top to get the exact dates right. It would have been nice to have a calendar widget. I don't understand the Day part though. All of the camps are weekly with no mention of being able to enrol in only one day. Should I just put Tuesday and see what happens?
Time of Program: You tell me. They are all the same time so why are you even asking. To be fair, there are extended hours for early drop-off and late pick-up. How about a couple of check-boxes so I can tell you if I need one of these options and you can add it to my fee?
2nd Choice if that time is filled: I’m going to go out on a limb and assume they are looking for a program name. But there are no second choices; only one camp is running each week. If I pick a program in a different week I imagine I would really mess up the folks in their office - all my previous answers will be irrelevant.
Cost: Again - you tell me. With all of the specific details gathered above, surely you can figure it out. The next screen had checkout and gathered credit card information. I wonder what would have happened if I put $18 instead of $150?
All in all, painful. If you are going to invest in a form, INVEST in the form. The goal is to make it easier for people to complete common tasks on your website, not frustrate them into calling - or registering elsewhere. I would have been happier and less frustrated had they said, “Please email us with the following information.”
Simple User-Centric Language
The form could have been so much simpler and straightforward. Here is my reco:
Child's name
Age of child at time of camp - program the form to match the age with the age group
Program Name - make this a dropdown menu with names that specify weeks, i.e. Freaky Funky Fun Jul2-6, Freaky Funky Fun Jul30-Aug3
Do you need early drop-off? Late pick-up? - A few check-boxes here
Proceed to Checkout.
The form can auto-calculate the price based on responses and auto-fill in the checkout portion. You could even allow the registrant to add mulitple programs - since some parents book their kids in for the whole summer. Why should they complete all fields 8 times?
Clean Data Makes Your Job Easier Too
Another benefit of these simple questions is that it makes collecting and processing them easier on the organization. Think of how many different variations of program name, hours, dollar values the free-form text fields will collect. Garbage in, garbage out. With dropdown menus and the relationships between program names, ages, cost and times all stored on the back-end, the data will be clean and you can export, sort, analyze, measure...whatever you need, with greater accuracy and effiency.
So that's it. It is only 2 fields less, but it's a savings of minutes and frustration. Offering an online form should not be a 'check-box' you tick off to say you offer it. When you move a business process online, make it easier for your customers and it will be easier on you.