When your topics are technological (e.g. programming) then hardware does matter, and software matters even more. For example, your programming exercises may rely on a particular version of some compiler (so that installation instructions, error messages, etc., match the ones in your courseware). In other words, configuration management in the classroom can be a big pain in the neck.
Over the years, we have devised clever solutions such as scripts that wipe each desktop clean and run a fresh install of all the needed utilities, and deliver them along with the courseware itself.
I'm actually against doing all that much with desktop mounted programs. In fact, I'm skeptical of 'courseware' itself. I see most courseware as the digital equivalent of a textbook. See, that's exactly what we're getting at here: static vs. dynamic. The notion of courseware is that there is a course to be followed and that that course will always be the same. Just wipe the last user's work and install a fresh copy of the same thing. I'd rather see kids and teachers use Web 2.0 to develop their own constantly developing and evolving personalized courses.