I believe most of these higher end units will be doing this based on speed rather than noise. If you measure noise, it will increase volume to compensate, which will increase the volume to compensate for the extra noise and within a few seconds your carpc will be playing music at full volume without being able to turn it down!
The best way would be to compensate the volume based on speed, either gathered from ODBII or GPS.
The only problems I can see with doing this is you'll have to have some kind of algorithm to decide how much to increase the volume by, and if you're doing it by GPS, what happens if you lose a lock and the "speed" it thinks you're going drops to 0?
I'm thinking about implementing something like this in AIMEE, reading the speed via GPS, just need to decide how much to adjust the volume by for different speeds