First off, make all of your important IK's able to follow the object space of most of your other controls. Its pretty easy to set up, just take a few condition nodes, a few locators, and a parent constraint. Having a drop down menu of object spaces that they can follow will make their lives a lot easier. Oh, you want the hands to be clasped together? Put it in the hand space. Same with any props in the scene. Purses, bags, etc. If they are part of the character rig you can give them a list of spaces to follow as well.
Following other characters is a little more tricky. I haven't implemented this yet, but if each of your controls has an extra group above them, that is completely clean, doesnt do anything, then you should be able to parent that group to whatever control you need it to follow. Should work decently. You could also make an object in each characters rig that can follow any object in the scene to make it even more clean. Need mindys hand to stay on Steves shoulder? Just take Steves "follow object", have it follow his shoulder. Then parent constrain the clean group above mindy's hand to his follow object. You can now move steves shoulder, it will move the follow object, which will move the group above her hand, which will move her hand, but you can still move mindy's hand independently.
I have spent as much time helping the animators set up constraints and locators, fix things they have broken, etc as it would have taken to just set everything up to begin with. Make your animators lives easier.