I can't say for certain what is happening, but I do know that "21250" is Baltimore, and any 212XX number is Baltimore, Maryland. So, 21250, 21228, 21212, etc etc would be within a few miles (max 10) of eachother...
It is possible to just take each zipcode you want, and then store with it the lat & long of the main USPS hub there. I say that since zips are based on USPS. Then, just evaluate the difference in miles from A to B and if it's less than or equal to your desired distance, include it...
That would be CPU intensive (if you have lots of zips and a large area to cover) but it would get the job done. I'm sure there are commercial packages out there that do this...