There are several considerations here:
- Spot lamps and sun lamps are quite different (I suspect you are using a spot lamp to simulate a sun lamp, as sun lamps are not yet supported with world volumetrics).
Spot lamps must be placed far away in order to simulate a sun lamp, as spot lamps diverge, while sun lamps do not. Sun lamps do not have a fallof, while spot lamps do.
This means that using a spot lamp like a sun lamp will either require big strength values, or constant falloff (which you can do with the Light Falloff node):
. . . the world surface shader or sun lamps will have no effect if a volume
shader is used. This is because the world background is assumed to be
infinitely far away, which is accurate enough for the sun for example.
However for modelling effects such as fog or atmospheric scattering,
it is not a good assumption that the volume fills the entire space, as
most of the distance between the sun and the earth is empty space. For
such effects it is be better to create a volume object surrounding the
scene. The size of this object will determine how much light is
scattered or absorbed.
This means that the light from the spot lamp is being absorbed before it even gets to the scene, and since the spot lamp is probably rather far away from the scene if it is being used to simulate a sun lamp, this will have a very significant impact on the amount of light reaching the model.
- No ambient illumination with world volumes, for the same reasons as with sun lamps. This means your lamp is having to provide all the illumination for your scene.
A solution to these issues is to use a object surrounding the part of your scene which you want to be dusty/foggy/whatever instead of the world volumetrics. In this case, you probably only want the inside of your hallway to be dusty, so create an object surrounding that portion:
And disable world volumetrics (by editing the world material node setup).
This means that we can use sun lamps (of course, you can still use spot lamps too), and the surface output of the world shader will contribute to the scene again.
There is one problem, putting the camera inside a volume object is not currently supported. Update: camera in volume is now supported as of this commit. This will be in 2.73 or any recent build.
Until then, this can be worked around by placing the camera inside a cube or sphere and using a difference boolean modifier on the volume object to subtract the cube from it (you can also parent the "camera case" to the camera, so that it goes where the camera goes). Also be sure to hide the the "camera case", so that it does not show up in the render:
For comparison, here is the scene rendered with a spot lamp (with constant falloff):
And a normal sun lamp:
All that said, in the end it comes down to what looks good ;)
If world volumes + a very powerful spot lamp is working for you, than there is no reason not to do that.