I have been using Drupal for quite a while now and for the most part I like love it. It is a geeks CMS, specifically for programmers (IMO). That is part of the appeal for me I guess.
One of the things I have been most impressed with is the extensibility. Adding new modules is relatively easy. I say relatively since the site admin still will need to run a sql script to create the table structures. That is a big drawback sometimes. Why?
Well, another feature is that a site admin can set Drupal up to use a table prefix. This would allow multiple websites (perhaps not all Drupal) to run on one database. Installing a module that requires a sql script to update the database, also requires the site admin to manually update the scripts. Quite a pain.
I would love to see this overhauled. What would be cool is if the sql to create or modify the tables was embedded in the module itself. Then, on the admin section of the site, the admin could choose the new "Upload New Module", and everything is automated. Very handy. Tie this into the table prefixing, and the Drupal install could on-the-fly modify the script to create the correctly prefixed tables. Getting more useable.
The icing on the cake is a feature in Drupal to use one instal base to run several sites. Currently this in only half useful. When configuring this, the admin can set the table prefix and the db connection properties for each site. When a module is installed, it is put into the common module directory. Unless the admin remembers which sites on the common code base have had their databases updated, the module is useless. Drupal has no indication to the admin if the tables have been updated properly.
In the overhauled system it would be wicked if when uploading the site the admin is given the option to update all the databases, or marked the sites as unable to use the module. The site admin would not be able to enable the module, and it should be made obvious as to why.
The more I think about these improvements, the more I like them. Now to find the time to investigate and code. Lol, that is not going to happen any time soon for me.