I've been struggling to use a development staging site as a safe methodology for a public drupal site. Why 'struggling'? Because so much of the design of the site, as opposed to the posted content, is sitting in the database along with the content.

A few modules, like 'views', support the concept of exporting a complex object from one site and moving it to another. It seems to me that there could be a more general solution involving a separation of the database scheme into 'structure' and 'content' areas.

Then, one could push the structure downstream from a staging server to a production server without disturbing the content.