Ah, the infamous 9999/fog/METAR bug.
The problem is only present when all of these three conditions prevail:
a) You are in ICAO (not FAA) territory
b) There are clouds in the sky below 20,000 feet
c) The visibility is greater than 10km.
Outside the US, METAR visibility, when actual visibility is >10km, is written as 9999. This actually means >10km, but FS interprets it literally and sets the visibility to 10km (approximately the 5/10 miles that you see). In the US, it's written 10SM to mean >10SM and FS interprets this correctly, but M$ forgot to tell it how to interpret 9999.
The problem disappears with no clouds in the sky because they just skip the visibility data from the METAR report entirely and write CAVOK instead.
Long and complicated explanation, simple solution - if only life was always that way, eh? Install this patch and all will be well.
EDIT: d**n, direct linking forbidden...
http://www.fsnordic.net > File Library > Flight Simulator > Miscellaneous > Others > FS2004 METAR visibility fix (choose the correct version depending on whether you use the 9.1 update or not).