I have two sound cards installed: one onboard and another PCI.
The PCI, the one I do no use very much, works fine. The onboard is the one which does not save the volumes. Every time I call an application its master and pcm volume go to the maximum (I see the sliders going to the top in alsamixer).
This has been addressed by the PulseAudio creator. You can read more about it here, see the "PCM is always 100%":
http://pulseaudio.org/wiki/PulseAudioStoleMyVolumes
In my lay explanation, Pulse manages the application volumes behind the scenes. It still remembers their values, but it doesn't use Alsamixer to set them. It tries to use the full volume range of the hardware (for better volume scaling), so it keeps every other software linux volume control at full volume, and scales itself internally.
Otherwise, ALSA would say "you can only use the lower 50% of the sound range of this device". (PCM at 50%). Now Pulse decides internally what volume level is best.