SMS and Alteris would be ideal but pricey.
The best thing you could do in this situation to keep costs low or nil?
Using script, say Windows Script or VB.Net, you could check against a registry key to see if said programs are installed. If they are not, install. If they are, skip.
You could also, using a simple batch file, have the programs install silently if you have MSI packaged software.. and as each program installs have your login script create a folder on the C: drive.. say, C:\Install and copy a text file to the local PC with the name of the program.
Let's say you want Adobe Reader 8 installed. Write your login script to first check to see if Adobe.txt exists in C:\Install.
If not, uninstall adobe via command line and using adobe's uninstaller silently. Then, install your adobe 8 silently since it comes able to do this. Once the installation has completed, copy adobe.txt to C:\install.
Next time the person logs in, it will see adobe.txt in the folder and skip that install. If you need to reinstall, you could delete the adobe.txt file and it would uninstall and reinstall on next login.
You could also set the login script to be a logoff script if you know how to use group policies with Active Directory since you state you're on a domain. I imagine it to be AD, seeing as you probably didn't run with Novell/Linux setup.
With that being said, hope it helps you figure out your options.