I normally use preferences. The only problem with this is that it is actually a preference. This means that if the user wants to he can overwrite it. I know it will be set at next logon with preferences. But if you want a setting to be “persistent” on the user you can add the key here:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerInstallSoftware
Everything you add into the software node goes to the software node on the current user. It will not be visible in the registry for the user, but these settings will override everything. For example if you want to disable updates for Adobe Reader X. You can run this command on the server:
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerInstallSOFTWAREAdobeAdobe ARM1.0ARM" /v "iCheck" /d "0" /t REG_DWORD /f
In my tests this does not effect the administrators on the server.