the zip databases can be hard to come by, since they require the latitude and longitute of the zips. somewhere on the us census website they have some comma separated files that contain the zip code, city its in, and lat/long coordinates for it. i used it a while back to do something similar.
the way you can calculate a distance between lat/long points of two locations is using an equation called the greater circle equation. which is an advanced algorithm taking consideration of the curvature of the earth when calculating the distance.
as far as finding zips within the radius of one, im not too sure, there may be a way to select zip codes that are close the the starting one and use some sort of formula to determine how far they are, but im not sure if subsequent zipcodes work quite like that.
edit: the one thing you may have to consider, is that on large sites like movies.com, they could have contracts with map providers paying big $$ and be tapped into a complex system that uses navigational maps to calculate very exact distances from two points, that they send to them.
also, i was looking through my old files and i found the zip database i used. its from the census site i think since it has populations. its format is
zip,city,2 letter state,zip population,longitute,latitude
edit: removed file url