I thought there was a volume gain parameter on every mp3, and I thought that most decoders already use it.
Each and every FRAME of an MP3 has a gain parameter, it's part of the internal audio decoding data-- you have a given group of audio bits scaled a certain way, so the gain parameter is the scaling factor for that frame. It's just part of the encoded data stream.
Now, you
CAN globally adjust this parameter across an entire file. But if you
increase it, on most MP3 files, you
will cause the audio waveform to clip because most CDs (and the MP3s made off of them) are
already normalized, as discussed
here.
Now, you could theoretically decrease this value globally across your entire MP3 collection, making your loud songs quieter. But then you run the risk of hitting the "floor" value for this parameter (I think...) on some frames. Meaning you'd get no audio for extremely quiet parts of songs.
Even if it did work, you'd be making your MP3 collection quieter (collectively on average), meaning that if you just ripped the new Sheryl Crow CD and played it without decreasing it first, you'd probably blow your speakers (man that album is LOUD).