I usually do one of these:
-
put the duplicate content in an iframe (ugly and not flexible). I use this for static content like ad spaces
-
load the content async with Javascript. All googlebot will index is an empty div. The user will see the content loaded with JS after the page loaded. In most cases there is no noticeable difference in how the page renders.Very easy to do with Jquery. My favorite solution.