I got this question the other day:
"A good friend and colleague called me the other day to get my take on a person (we'll call him Jim) who worked in my division several years ago. Jim is applying in my colleague's division. Here's the problem: I did not have the best experience working with Jim. What should I do? Tell the truth or just stay silent?
I think this is a really hard situation. On more hand - you've had experience with Jim and if you were in your colleague's shoes, you would definitely want to know what you were getting into with a new hire. On the other - it is more professional to stick to the basics, confirm employment and that's about it.
In this case, I would suggest that you offer an assessment of what his strengths and weaknesses were. (And I mean a real assessment not - strengths: always up for a drink; weaknesses: anything involving work) I would also be very clear that you haven't worked with him in several years and this assessment may be out of date. You should not gossip or complain about any of Jim's behavior while he was previously at the company. The goal is to try to avoid an uncomfortable situation if Jim does get hired.
Let me know how it goes!