Do you mean so they will never move off zero or do you want items moved to zero?
There is a lisp out there to get things to move to zero I think there is somthing in the express tools if i remember correctly.
Getting things to never to move off zero is probably possible but my thoughts are once you have a lisp to move things to zero if you could get some vba code to run that code on drawing close it would run the move all obects to zero. Or you could run that code via a button or keyboard shortcut.
I will do a quick search to see if I can find a link to the lisp, but it is out there.
That's what the FLATTEN command is for, except perhaps for the elements-in-Blocks part [I'm not sure -- it's not something I ever seem to need to deal with]. This has come up before. Do a Search.
FLATTEN was what i was thinking of.
see this post http://forums.autodesk.com/t5/autocad-2010-2011-2012/how-to-flatten-an-entire-drawing/td-p/3636030
if you are trying to "flatten" 3D objects to 2D on zero, then you would use flatshot - it will take whatever view you are looking at your 3D model and create a 2D version of that view on Z zero. If you are trying to "move" 2D objects to Z zero then "flatten" will do that.