Adrian wrote a few ways:
All modules should be in their own directories to begin with.
With the current setup, in order to upgrade easily & cleanly, my latest approach is to put all modules I've added (ie those beyond the ones shipping with CS, which is my base) within a single 'Custom' directory. All modules go into subdirectories of this single directory, to allow me to easily in one fell swoop, move the bundle of 'this website's modules' into a new install, an upgrade, etc.. I'm going to argue _against_ forcing a single hierarchy of 'all modules must be in their own directory with /modules' for this reason. While it might make sense, the current setup is far more flexible... I was using this sort of 'unpack new module into own directory into /modules' approach each time, and then hating doing upgrades/etc, when I realized there was nothing stopping from me putting 'my modules' into a subdirectory for ease of tracking/backup/etc. Please don't make me go back to the harder way of doing, _regardless_ of any argument 'but now the system can upgrade modules...' - I want to be able to 'bundle'. Developers _should_ be able to bundle (put multiple modules into one directory), etc.