Finally, you need to define contact roles. Do so with a three-junction objects that points first to a contact and then to an account, opportunity or case. The contact role parameter, typically implemented as a picklist, indicates what this person is doing in the context of a particular account, opportunity or case. This is how you indicate that an individual is the decision maker in one deal but only a weak influencer in another.
Each of these distinctions needs to be visible - in fairly intuitive ways, hopefully - from any system integrated with the CRM that must be used by sales or marketing. That goes double for any data warehouse or reporting engine that uses these data.