There are two methods to updating content types following deployment. Everyone familiar with content types may know that after they are originally created and deployed and are being used, that changes to those content types can be challenging. When adding or (or more importantly) deleting fields, if the content type is in use you can experience data vacancy (existing artifacts that use the content type won't have the values filled in potentially) or data loss. In many instances, MOSS will prevent the deletion of content type fields if the content type is in use.
Thus, when faced with a refactoring of content types, what is the best way to change the type without disruption to the artifacts that are using it. The article below outlines two methods:
1. Change the content type and propagate changes to the instances where the content type is used. This content type "push down" is built into MOSS and works very well for additions or updates to columns
2. If there is a fundamental change in content type composition, replacing a content type with a new one may be warranted. Thus, a trick is to add the existing content type (to be replaced) to the _hidden group and add the new content type in its place. This preserves any artifacts (documents, etc.) that are using the retired one and allows immediate use of the replacement.