Media Center had a DSP like this many moons ago, but it was replaced in favor of Replay Gain. Unfortunately, Replay Gain doesn't help with movies. If there was demand, we could reintroduce a dynamic volume / dynamic range DSP that would turn down loud passages and turn up quiet passages.
For now, I think FFDShow has some sort of dynamic range DSP you could use if it's doing the decoding. There is probably also a VST plugin that could do the job if you searched.
Finally, many external amps also have a feature like this.