Found this at the US Census Bureau:
This is the file layout for ZCTA's - zip code tabulation areas and it provides latitude and longitude as part of the file. Hopefully that will get you started in the right direction.
Lyle
.............................
The ZCTA file contains data for all 5 digit ZCTAs in the 50 states, District of Columbia and Puerto Rico as of Census 2000. The file is plain ASCII text, one line per record.
* Columns 1-2: United States Postal Service State Abbreviation
* Columns 3-66: Name (e.g. 35004 5-Digit ZCTA - there are no post office names)
* Columns 67-75: Total Population (2000)
* Columns 76-84: Total Housing Units (2000)
* Columns 85-98: Land Area (square meters) - Created for statistical purposes only.
* Columns 99-112: Water Area (square meters) - Created for statistical purposes only.
* Columns 113-124: Land Area (square miles) - Created for statistical purposes only.
* Columns 125-136: Water Area (square miles) - Created for statistical purposes only.
* Columns 137-146: Latitude (decimal degrees) First character is blank or "-" denoting North or South latitude respectively
* Columns 147-157: Longitude (decimal degrees) First character is blank or "-" denoting East or West longitude respectively