Sure there is, but it takes a bit of trickery. First of all, this only occurs when you use blend mode like mulitply or additive, and mulitple passes.
Say you have a two pass shader, and the second pass is added to the first. Becasue each pass is fogged seperately, the second pass wi9ll also add the fog color to the first, giving you a lighter overall fog color. The way to deal with this in this case is chnage the fog color for the second pass only, to black.
This is done like this--in your technique, in the second pass, put this line:
fogcolor={0.0,0.0,0.0,0.0};
If that second pass is multiplied, you want the fog color to be white:
fogcolor={1.0,1.0,1.0,1.0};
This may not work if you are using other, non-standard blending modes, but additive and multiply are the ones used in nearly all multi-pass shaders, in whcih the first pass is not blended normally... so this work for nealry all cases where you need normal fogging (such as in multi-pass per-pixel lighting).