I need to add a new custom Content Type to an existing SharePoint Intranet site but I want to make sure I do not disrupt any of the data or web parts on the site. What is the best way to go about this - is it to do a Feature Upgrade, or to retract and re-deploy the Content Types wsp?
If it's new you have not problem to add it. Otherwise if you want add new column on your old content type you have to upgrade it and you can set a default value on those new columns.
Off course, to be sure to avoid any kind of problem, before deploy in production you should deploy the wsp in a stage environment.