May want to verify how you're parsing the data set, am finding several ZIP codes which are close, but not quite. For example 12590 is drawn accurately (as I recall, haven't lived there in a decade), but when I enter 12603 I get the same map for 12590, when 12603 should be farther north as it's poughkeepsie. I tried this in two separate browsers so it wasn't a caching thing unless you're caching by client IP.
Another example: 11202 shouldn't have a map at all, it's reserved for the central PO in Brooklyn (Cadman Plaza GPO), instead it's being drawn as a region in North Brooklyn.
Another example from outside Brooklyn: 60515 (Downers Grove, IL) looks accurate, but 60516 (southern Downers Grove) appears to be drawn using the 60517 (Woodridge, IL) boundaries, and when I punch in 60517 it gets drawn using the boundaries for 60561 (Darien, IL).
I haven't played with GIS data for several years but remember than there was a set of ZIP code data sets around 2005 which had accurate latitude/longitude points but the ZIP codes were frequently off by one (I ended up having to manually massage the data because I couldn't find a pattern to the way the ZIP code was appearing in the data).