This is how I heard the windows side explained in laymans terms from programmers.
In Windows there are hooks in programs and the OS that Exe's make calls to that just wont be there in Linux. Because of the differences in both the environments. Initially Linux looks for permissions, Windows looks for a linkable format first by examining the extension, looking at properties then looking inside the Exe file etc.
There are applications like Netbackup that started out in linux and have been modified to run in windows environment with out using wine IMHO, frequently those are some of the most stable best behaving Windows Apps.
When Windows Apps. become unruly usually it is because some of those hooks held by the application weren't completely released and windows thinks they were (Memory Leaks). When Windows hands that unreleased memory space out to another application Crash and burn.