I don't know about the US, but in Australia post codes (our zip codes) regularly service more than one town (or principality) when you're rural, and if you're even vaguely familiar with Australia we have a lot of rural :)
I've seen this handled quite well by a number of sites - you enter your post code and they'll just drop down a list of all the places it matches. Choose your town/suburb and you're done!
The ridiculous part is that they'll often ask you to enter your state as well, which you can derive from the first digit of the post code :/