FWIW your friend's code reflects an older approach to error handlers which isn't necessary any more. For the last few versions, it has been possible to declare *error* local to your routine, and define a local function of the form:
(defun *error* (msg)
etc etc
)
This doesn't conflict with the global error handler, and eliminates the whole newerr/olderr business, leading to cleaner code.
Also, if you construct the *error* function to do nothing more than reset your environment as it was, and terminate quietly with a princ, there's nothing wrong with calling it as a way of ending your routine normally when there is no error condition. This means that you don't have to have all those setvars at the end of the routine, just a simple (*error* nil).