I apologize for the delayed response. I hope this isn't too late to be of any use.
The Call History table and the contact list tables exist in two different databases (the former is in the IC reporting database, whereas the latter is in the Dialer Database) which makes doing joins "interesting" - especially if these two dtatabases are on different database servers!
The Call History table contains two columns named [customdata1] and [customdata2] which are there for this purpose. You can populate them by using a Policy Behavior of type "Custom Data". The fields support being populated using a Macro, so you can easily populate one of them with a value from the contact list (use the Macro to select an Attribute). You can control which calls this is done for by setting the condition(s) for the Policy appropriately.
Sadly, I don't believe it is possible to display the contents of these columns in any of the standard reports, although I would be more than happy to be proved wrong on this!
I hope this is of some use.
Paul