How do I get configuration updates out to "pre-configured" sites? I'm currently using install profiles to "pre-configure" drupal sites, but they offer no way "re run" the profile on an existing site when a new version is released.

I am creating install profiles and custom themes for end users (small business owners) to have a "plug and play" Drupal website targeted to their business needs. Now that Acquia (and others) are assembling really complete distributions (acquia.com) it's even easier for an end user to install and update their own site with a single (or three) downloads. No drupal experience needed. All one will have to do is download Acquia Drupal (or some other distribution) and a profile/theme combination (what I'm developing) that uses the same modules, and they have a complete website ready to roll. Updating the whole thing is just as easy. That's what I am hoping for. The next step in getting Drupal adopted worldwide.

But what happens if I, as a profile and theme developer, want to update an existing site's configuration? What if the distribution has a new module available, and I add a configuration for this module to an existing profile? What if I add a new "view" or content type to an existing profile? How do existing site owners get these new configurations? In this particular case, where I'm developing "pre-configured" websites, my end users are going to be able to receive updates to my theme (drupal.org), and all modules used (acqua.com), but, as I understand it, they cannot use an install profile except to first install a new website. So no matter what version of the install profile is newest (would be released with the theme that goes with it), the existing site "configuration" will be locked into whatever version they installed with. Any new configurations will have to be added by hand on a "per site" basis. They might not want to, or be able to make these modifications themselves.

Configuring a site is what installation profiles are really good at. Seems like a good way to pre-configure a site, and keep it updated. Is this the best way? Could I (should I) use a module for these configuration tasks instead? Seems that this would solve my "update" problems, but installing would turn into a multi-step process, with the added steps of turning on the module and visiting it's settings page.

How can I (should I) get installation profiles to run on an existing site? This brings up other issues of making sure one has permission to run install.php, when the site already exists. This file (unlike update.php) does not check for permissions. Also i would need to get the script (install.php) to NOT re-install Drupal itsself, but just add certain (new) configurations. Seems like I could set this up using the "task" calls built into the install profile system. I could call variable_set('install_task', $task) , some time before the update procedure, where $task is a "check for updates" part of my profile. Seems like this could work, but is it the best way?

How do I get configuration updates out to "pre-configured" sites? (let's not talk about the logistical issues of checking the existing configuration for modifications, and yada yada. I just wanna be able to GET this type of new code delivered to an existing installation.)

Thanks,
M.M.