The title is an oxymoron, and half a joke. However, it seems that at times, websites require a very strict process of development. Typically the flow is development (either the developers localhost, or a communal crap site), to staging (where there's testing) to production. I'm going to go out on a limb here, and declare that drupal handles this kind of enviroment HORRENDOUSLY.
Today, I attempted to briefly map out how the hell one was supposed to manage updating a site's configuration without changing user generated nodes, comments, files, terms, accounts, or any other thing "non-configuration setting". This was my recommendation: