Many forms use radio buttons or dropdown menus under the theory that users are more comfortable “picking from lists” rather than just entering data off the top of their heads. Most of the time though, especially when users are confident in their answers, it’s just easier to let them type the answers directly rather than requiring users to shift hand positions several times while entering a small amount of data.
Dropdown menus are particularly useless. They are useful when users have to pick from a list of values, but it’s almost always easier to pick values from an autocompleting list than scan (and possibly scroll) down a dropdown:

Dropdowns are easier to navigate when there are fewer options, but in this case radio buttons are often even better. If you must have a dropdown, at least give users the ability enter values with the keyboard in addition to choosing from a list.
Why do I have to enter my city, state, and zipcode whenever I want something delivered? City and state are derivable from zipcode! Mint.com is one of the only websites that gets this right:

Also notice that Mint validates your entry automatically without your having to press submit. Once a form is submitted, the only way it can notify users about problems is to reload the page. But when the page gets reloaded like this, users don’t know what state their data is in. Can they just correct the one error? Or do they have to re-enter other information that was previously entered correctly. Many websites clear password fields in this case, some do not.
The reason to force users to fill out a form is to gather explicitly structured data — you want to know that this part is the city, this other part is the zipcode, etc. However, it’s not always necessary to force users to explicitly structure the data they enter; often it’s possible to parse their plain text entry and guess at the structure. (This is particularly effective when it’s easy for users to correct errors).
For example, imagine if Google Maps used a conventional form to ask you for an address:

Google Maps doesn’t ask you to structure your input because it’s possible to guess what you mean by looking at an unstructured string of text. There’s no reason that online vendors couldn’t use this same strategy.
Here is my ideal address entry “form”:

You enter any string in the address box that unambiguously identifies your location. The map and postal address below update automatically so you can see if what you’ve entered is incorrect.