Geozip calculates distance between US (optionally Canadian) zip codes or geographical coordinates, latitude and longitude. It does take into account the curvature of the earth for calculating. You can choose miles, kilometers or nautical miles output.

Geozip software screenshot