* Modules get an activate, deactivate, and uninstall hook. I think Merlin was working on this to some degree. Activate enables the module, deactivate disables it, but keeps the created data, prefs, and tables in place, and uninstall removes everything. This mimicks the operation of Gallery 2 modules - the uninstall part is awesome! If I use search.module for a week on my 5000+ node site, then find out it's just not good enough, I don't want those gigantic tables hanging around forever, taking up backup space. If I uninstall search.module, those tables and data should be removed.
Of course, you're assuming dependency handling here. If Pizza.module depends on the tables in JunkFood.module, then we can't uninstall junkfood.module untill pizza.module is uninstalled. This leads to debian-ish system, I'm just scared of re-implementing apt-get in PHP. Of course, if we go for it, it would be entertaining to see the code :) -Arnab