Jakob Nielsen (who is more opinionated than is completely necessary, but still more clued-in than any developer at my office) has a great article up about forms, and why your website is probably overdoing it (and testing your users’ patience).
I don’t have much to add to that, except to complain about the State dropdown. Why do I need to pick my state from a dropdown list? I can type "MN" about 800 times faster than I can find it in a list of 50. Sometimes typing "MN" when the dropdown is enough to bring up "MN", but it might miss "Minnesota" or "Minnesota – MN" or lots of other super-helpful "enhancements" you do-nothing webdesigners have come up with.
It’s not like you can’t validate the state in a two-long text field, or even that having the crazy 50-long dropdown prevents misuse. I once sold a DVD to somebody who used AR as their state, even though they wanted me to ship to Afghanistan. Figure that one out.