If I know that I'm traversing and processing facebook/twitter/reddit links, doesn't "nofollow" already indicate user generated content? (Even if some "nofollow" links do not do that, I can probably separate those based on their position in the documents.)
If you're going to treat specific sites specially, then go in all the way and be prepared to have your logic understand any/all aspects of their structure. Or else, don't bother.