I buy it from them (in reallity I get my clients to buy it from there) . There are a few versions and I get the CSV file of their Premium Edition (one with longitute an dlatitude as usually I need it to calcualte distances between zips) and no updates. That stuff does not change that often that you would need monthly updates. It is nice and clean and can be dumped right into mysql table.
Its in the white pages. Thats where all the info is. They just spent all the time picking it out and putting all the info in on everything. You can get the info by spending the time looking through each state and putting in all the information. In my opinion, the $40 for the database is very fair.
Field 1 - State Fips Code
Field 2 - 5-digit Zipcode
Field 3 - State Abbreviation
Field 4 - Zipcode Name
Field 5 - Longitude in Decimal Degrees (West is assumed, no minus sign)
Field 6 - Latitude in Decimal Degrees (North is assumed, no plus sign)
Field 7 - 1990 Population (100%)
Field 8 - Allocation Factor (decimal portion of state within zipcode)
The data on that might be slightly out of date, but it's free so you get what you pay for. There are many paying services out there if you demand the latest zipcode information.