Use case: A deal/opportunity has a number of roles that are fulfilled by contacts (e.g. Project manager), however, one contact can play different roles in different deals, so it doesn't make sense to add it as a custom property on the Contact object
read more