While, in concept, this seems like it should be a pretty easy thing to put together, it is not. I took up the project of mapping zip codes for Gallatin County after Brian Oevermann had initially started it before he moved away a couple of years ago.
There are many things that can get complicated quickly. Contract Post Offices, such as Big Sky, have a zip code, but do not do any delivery. There are alot of Post offices in grocery stores, malls, etc. that are only rental boxes that have a zip, but the area they cover is extremely difficult to know.
Also, I've had the various maps out to the Post Offices in our county for approval, changes, etc. and I've only heard back from one. The rest are either in the process of changing Postmasters (which I guess they loan them out from location to location too) due to the economy (retirements, etc) or just don't have time to devote to looking at whats been provided to them, even though it would be beneficial to all concerned.
I've also found that a resident may live on one side of the road, but if his box is on the other side of the road, he may be in a different zip code, because the road is the dividing line.
And then you have the rural areas that are "no man's land"...the National Parks, etc. The P.O. isn't going to take on anymore additional area than they have to, because in some cases they pay the contract delivery drivers per stop. Cluster boxes for neighborhoods or subdivisions are another issue, as are condos as Kris mentioned.
I'd be happy to chat with anyone regarding these and other issues we've come upon as we've been working through this.