To be fair, ON_SCOPE_EXIT is quite nice. Its functionality is very simple and restricted and it's indispensable when one needs to do something simple, usually with non-C++ resources (like calling fclose on FILE*).
It's also easy to debug. Though I tend to spend much less time in a debugger when working with C++ code, all this strict typing pays off.
C++0x has lambdas so it's possible to write analog of 'defer' from Golang (indeed, Boost already has it).