Audacity has a very good compressor facility built in. However... any time one uses compression, one has to really fiddle with the compression parameters (delays, attack times, thresholds, etc. etc.) to avoid distorting -- well, disturbing might be a better term -- the music. Classical music does or can have extreme dynamic ranges -- that is part of the beauty of it -- whereas most popular music is very limited that way. One does want to be a bit careful...
As zezhyrule notes, a lot of it has to do with the sound system. If you are listening on a very good sound system in an otherwise quiet environment, or on very good quality earphones, one can handle a much larger dynamic range than on poorer equipment, or in a noisy environment (the difference comes in quieter quiet passages, not louder passages).