I didn't personally design the table so I'm afraid the decision wasn't mine.
The table represents projects and the key projectID is selected by a user. The projectID's are chosen by project leaders and can't be generated by an identity or guid column. They will probably never change but if something drastic happens it would be nice to have the possibility.
Any how the table which is attached below is referenced by 3 tables and a few web pages so it would mean some work to add a surrogate key. Id prefer if I could just write the trigger, there won't be a lot of updates anyway so I'm not worried about performance loss.
Sounds like a classic we had.
Every employee was assigned a unique identifier... That payroll would change!
The solution: We added a "proper" primary key to the table and changed employee number to be an attribute (just the same as someone's name, dob, etc) which could change at will. We did of course add the constraint that it had to be unique, but no other tables relied on this attribute.