The infamous ATL_MIN_CRT preprocessor switch has been the source of controversy for many years. In ATL 7, Microsoft made some improvements to the ATL startup code that made ATL_MIN_CRT compile a little more useful. The most important change is that ATL_MIN_CRT builds now support correct construction and destruction of static and global C++ objects at module startup and shutdown.
Here's another important thing to note when starting an ATL project: In ATL 3, debug projects had ATL_MIN_CRT turned off, and release projects had it turned on. In ATL 8, both debug and release projects default to having ATL_MIN_CRT turned off. This is a useful change in my opinionjust about every ATL 3 project got the dreaded "cannot find _main" error the first time it did a Release mode build.