ok, heres the shortened version for previous post...
Automated script for tutorial here. Download
1. create 3 locators, one for hand, object then prone.
2. add a 'Grasp' attribute for hand locator, float, scalar, min 0, max 10.
3. shift-select hand, prone then object locators in that order add a default Point and Orient constraint.
4. with driven keys, set 'Grasp' as 0 (Driver), and object_pointConstraint, Hand W0 and Prone W1 (Driven) with Hand W0 value at 0 and Prone W1 with 1 and add key, same for oreintConstraint, then reverse with 'Grasp' at 10 (so pointConstraint - Hand W0 is now 1 and Prone W1 is now 0 and same again for orientConstraint).
5. position and Parent Hand locator to characters hand and prone to wherever and then group and parent the object picked up to the object locator.