I think I'm going to leave it as instanceof Error for now, pending further investigation.  util.isError won't handle cases where custom Error objects are created in the Error prototype chain via new - for example:

var MyError = funciton(msg) { ... };

MyError.prototype = new Error();

then

util.isError(new MyError(msg)); 

will return false.

Since we are examining errors from some of the node_modules, changing this may change the behavior, and should be done with a little more care than I have time for at the moment.