Question: Is there any reason for a program to leak when compiled in Debug mode and not in release?

(Debug means debug informations, and compiler optimization disabled, Release means no debug info / full optimization)

That's what it seems to do but I can't figure out why. Btw purify is not being helpful here

Answer: 
Debug and Release mode use a different memory model.

There are cases where are program runs in one mode and crashes in the other one.

Something that may cause this is memory corruption (especially stack corruption). That may be a reason why there are differences. Another reason could be that the debugger doesnt free everything, but i doubt it. 

Btw are you using VS 2010 beta? That may also be a bug in the beta version.
conditional `#ifdef _DEBUG` lines could be one reason.