We don't even want them to know where software is installed. We don't want to have to tell everyone where the new version is. It should be transparent to the user. That's where an environment manager becomes useful. The user only needs to know the symbolic name for a given package and he or she will always be assured the the correct paths are being set, no matter which system the user is using.
Users can also write their own modules if they wish.
If we install a new version of an already installed piece of software, all we have to do is update its corresponding module. The next time the user logs in and runs the upgraded software, they would be running the new version. The upgrade would be transparent to them. If we move a piece of software to another partition or server, this would probably be an autofs map update. I'll talk more about autofs and how it works well with the environment manager below.