Former Employment History and Using as a Related List

Former Employment History and Using as a Related List

We are a Professional Services firm wherein our BD efforts are often driven by establishing tangible links between current "targets" and our existing clients or contacts.  

For this reason it is crucial that we can maintain data on former employment (and other items) as our client contacts often move from one firm to another which actually creates new opportunities for us.

Though I realize I can create a picklist or checkbox to segregate which contacts are current or former employees, but I do NOT understand how best to avoid duplicating these contacts under every Company they have ever worked for. 

Is there a more elegant, albeit complex, solution for perhaps moving out of a Company/Account's list of Contacts while moving this history to a custom section/set of fields.  

Realize it is a big question that I may not get a complete answer to without more specifics, but seeking suggested design approaches and wanting to know if any existing tools can readily handle.