This same problem drives me insane. I use mp3gain (http://manpages.ubuntu.com/manpages/hardy/man1/mp3gain.1.html) which has a graphical front end if you prefer, called easymp3gain (http://sourceforge.net/projects/easymp3gain/).
This awesome tool can gain all your tracks to the same level. It's not perfect and it's obviously not going to completely flatten the dynamics of the song/track but will certainly set an upper limit (and raise up some of the quiter patches) to a give a more consistent level (this is what I find anyway).
I use it religiously for mp3 music I have, to prevent the same problem when wearing ear phones. I don't want to turn up the current track, only to be deafened by the next.
HTH, James.