So the .NET Framework problem that I wrote about last week reappeared this week, coming back around like a bad penny. The same two users whose .NET apps stopped working last week had the same problem again today, while everyone else was fine. Apparently, some of the .NET Framework files had disappeared from their machines. However, after some poking around on the Internet, I turned up a new piece of evidence - a known bug that can result in Framework files being deleted. Apparently, if a .NET patch is installed while .NET assemblies are in use, then not only can the install fail, but some of the assembly files can be deleted for good measure. Even if the user is especially conscientious and closes all apps before installing the update, there could still be services running that use the assemblies. To be safe, one must use the Process Explorer to find and kill any processes that have an open handle to the assemblies before installing the update.
Luckily, I also realized why the problem kept coming back on the same users' machines. If you just remove and reinstall the .NET Framework 3.5 SP1, it won't contain all the latest patches, so the next time the user runs Windows Update, the updater will helpfully try to install those patches - which will likely start the whole cycle of pain all over again. So this time I made sure to install all the latest .NET patches as well. At least they should be good until the next time a new .NET patch is released, and hopefully by that time the installer bug will be resolved as well.