fog is oftenly the problem of the graphics card...
nVidia cards make some truely beautiful fog, albiet a little slower than standard using the Fog Emulation Table - DirectX's fog is generally not technically Dx's but actually part of the Fog Table directly based on your colour depth.
you see fog on a GeForceFX card with its 128bit colour precision and really that is truely beautiful fog, as opposed to the SiS 650's fog which looks like the 24bit washout that it is.
-- -- --
personally i generally don't rely on the built-in fog very much, instead i generally make 3 planes then i simply give them a kinda cloudy texture alpha map ... furthest away at around 10% opacity, closest at around 90%.
You might be able to see the changes on the ground of the fog, but its very quick and it produces a nice effect no matter the colour depth.
another alternative is to take the three planes, then what you do is a layered haze from a backbuffer screenshot. This gives it a nice volumetric look.
I can also explain howto make volumetric fogging & lighting but then really what would be left for you guys to figure out.
-- -- --
programming is about problem solving, you have a problem ... the best option is to figure out a way to solve it - else live with what you already have.