My initial thought would be add a custom field at a program level, then create a calculated field at the project level to what campaign that project lived at and the associated custom field. (or likely simpler, create those fields specific to a placeholder project. Although, to flesh it out more you...