Well, we have to come to terms with the realization that society has a percentage of freeloaders. They also need to make a living; somehow. So the better option is to assume a certain percentage of freeloaders and design work with them in mind. Instead of firing them, reassign them to places they will prove more useful. Something like where in Japan they relegate these people to the periphery of the company but don’t fire them.
A friend had a co-worker who would just walk around the company all day holding a coffee mug, schmooze with people, pop in on meetings, etc. They ended up making him the liaison (point person) for the company's charity projects. He apparently ended up doing a great job in this position.