Я часто сталкиваюсь с программами Windows, которые объединяются в MSVCRT (или их более современные эквиваленты) с исполняемыми программами. На обычном ПК я бы нашел много копий того же самого .DLL. Я понимаю, что MSVCRT - это библиотека времени выполнения C, несколько похожая на glibc/libc.so под * nix.
Почему программы Windows должны использовать с собой свои библиотеки C, а не просто обмениваться общесистемным libc?
Обновление: благодаря Shog9 я начал читать о SxS, который еще больше открыл глаза на проблемы с DLL-связью (DLL Hell) - http://blogs.msdn.com/b/martynl/archive/2005/10/13/480880.aspx является одним из полезных вступлений в проблему...