The default assumption, especially for Drupal 6 and up, is that a module exists to do something. Here's a list of modules or functionality I didn't have the time or search prowess to find, however.

http://drupal.org/project/module_filter does some of the grouping and filtering that I want.

    • customize the admin/build/modules page

      • create custom groupings of modules in admin/build/modules, overriding the package listing in the individual modules' .info files

      • the ability to drag & drop modules up or down into groups

        • and add modules to multiple groups

      • the ability to drag & drop grups up or down

      • the ability to hide groups altogether (since Drupal 7 can hide modules individually)

        • a page would need to list all the hidden modules, in case the site administrator forgets about them

      • the ability to enable and disable entire groups of modules all at once

        • example: UI modules like jQuery UI, Context UI, and Views UI that one doesn't need enabled in production but would like to enable all at once to look at the site's configuration

      • save whether the groups are expanded

      • search modules within the page base on criteria (i.e. stop relying on browser search on a long modules page)

      • http://drupal.org/project/moduleinfo proves that modifying the admin/build/modules page can be done

    • uninstall hooks that tell me what's been deleted from the database

      • even better, tell me before I press the confirmation button what's going to be deleted from the database

      • or backs up the database before making any database modifications

      • maybe individual modules can do this, but Drupal should force it?

    • ability to get the current module's name

      • for when I want to do drupal_add_js() or drupal_add_css() and use drupal_get_path() and still have to put the module's name in that last function's parameters

      • something like:

        • drupal_get_current_module_path()

        • that returns the path of where the module's located

      • why?

        • in case I want to change the module's name (not likely)

        • for copy & pasting code and not having to replace the module name from a generic one provided in a example