I have a large list of users and their zipcodes. I would like to segment them by region.

I'm wondering how people handle this, and where they're getting their databases. One option I've seen is MSA (Metropolitan Statistical Area?), which seems to be done by the government. More accepted are DMAs, which seem to be done by Nielsen and is a proprietary database.

I'm wondering what other means are out there. DMAs seem to be about the ideal size, but it's an expensive database. MSAs are smaller (I think?), but the databases I've seen have a lot of holes. Doing it by state might be too big.

I'm curious how other people handle geographic segmenting for marketing or reporting.