The difference is that they occur at different positions in time. The pre commands are used to block things. I don't have an official list of what happens but here's an example of how it could look:
Code:
CmdStart
CmdEnd
PreThink
AddToFullPack
PostThink
Or perhaps:
Code:
PreThink
CmdStart
AddToFullPack
CmdEnd
PostThink
In between those different engine functions there could be various things occurring making one better than the other to use in some occasions.
__________________