There are ready made paid versions out there. Do a search on zip code databases on google and you'll come up with a lot. Depending on how you want to use it you may need to pay different fees (for example if you want the list distributed with the application).
There are also some free lists and servers but I'm going to go out on a limb and say you pay for what you get. It really depends on how serious the application you are developing is and how strigent the requirements are for zip code matching. [ January 18, 2007: Message edited by: Scott Selikoff ]