I notice that Project 2007 has the functions that allow operations that can be undone to be placed in a single stack item, or \"undo transaction\". For example:
Word 2010 provides the ability to do this via the Application.UndoRecord object. See http://msdn.microsoft.com/en-us/library/hh128816.aspx