Jeff,
Surrogate keys are the way to go. To quote E.F. Codd the father of relational database theory, "Intelligent keys aren't!", meaning that PKs that carry meaning are not an intelligent thing to use.
Then purpose of a relational primary key is to uniquely identify a record. The PK has no other purpose. When the field being used has NO OTHER MEANING then it is easy to maintain the effectiveness of the PK. When the fields (or fields) being used as the PK has some other meaning then people will want to change its value. When a PKs value changes then all related tables must be fixed to preserve the references.