Hmm, yes, to make the comparison to my system (Slackware, what's yours? Actual 'Debian?) mine uses init scripts. I'm quite unfamiliar with Debian, so excuse me if I'm out in left field here
Upon bootup/ login, the init scripts run 'alsactl -restore' which reloads the previously saved alsa settings. The exact script is /etc/rc.d/rc.alsa .
Before shutdown (or sometime like that) the system does an 'alsactl store' to save the current settings.
So, after you go and to 'alsaconf' as root, and get it all working, do 'alsactl store' to save it.
Then, if it doesn't already exist somewhere, create a script or add a line to an existing one like rc.local, which reloads the alsa settings upon reboot.
This is just the basics of the alsa settings. If you are actually having an issue where a particular application is screwing up the alsa settings, I'm not sure what to suggest. Need some more detail, as you learn what's actually happening there..