ZIPs are almost always fine at a state granularity, and pretty good for cities. If the form is street/city/state/zip, you can autofill State correctly from ZIP 99.9% of the time.
But think about it, if you're taking an address to ship something, getting the ZIP right is what matters. If your package has 45201 on it, it doesn't matter if it says Cincinnati, OH or Cincinnati, KY.
[0] http://web.archive.org/web/20110112211559/http://maps.huge.i...
[1] http://en.wikipedia.org/wiki/Address_Verification_System