According to this page, Firefox uses Google Location Services :
How it works?
When you visit a location-based site, Firefox will ask you if you want to share your location.
If you agree, Firefox collects information about the neighboring wireless network of access points and IP addresses of computers. Firefox then sends the information to the default geolocation provider, Google Location Services, to get an estimate of your location. This place rating is then shared with the requesting website.
And according to this page, Internet Explorer (rather predictably) uses Microsoft Location Services:
If you allow, Internet Explorer will approximate your location using the Microsoft location service
The difference in the specified location will be due to differences in the underlying databases, for example, a Google database can display a WiFi point or an IP address that Microsoft does not have (or vice versa).
I cannot find information about changing the location provider for IE, and although Firefox does have provisions for alternative providers, I cannot see at this point how to change it.
Please note that for me, Internet Explorer really more accurately reports my location (both browsers change correctly, but in IE the error radius is about 10 miles, and in Firefox about 20 miles).
source share