Can you describe the process a little more? Why aren't you just searching on the customers name?
There are a couple of ways, and a couple of functions, but usually I do this with a script. When I get a new customer, I just click a button that retrieves the lat and long from the address. Don't know if that is what youre looking for.
If you describe your set up a little better and the work flow, someone can help more.
For future reference, you don't need a description of the entire problem in the title
Either will get you the city & state from the zip, or the zip from the address, city and state. It might be a bit more challenging to code up the assistive typing you mention, but if you go the Google Maps route, you could integrate a visual a map in address entry system.