L'erreur en question c'est certainement la msvcrt (la libc de Microsoft) de VS2008 qui manque sur les systèmes autres que celui où tu développes. Cette DLL est installée via un système qui s'appelle Windows Side by Side (WinSxS pour les intimes...), introduit par WinXP. Ce système était sensé apporter une solution au DLL Hell : plusieurs versions d'une même DLL (avec le même nom) pouvait cohabiter sur le même système (la DLL la plus connue à utiliser ce système la comctl32.dll v6: celle qui gère les contrôles standard de Windows). Dans la pratique, c'est une usine à gaz à la Microsoft: l'installer à la main, c'est mission impossible (j'avais lu le blog d'un gars qui avait essayé: bah, c'est franchement pas trivial, désolé, je ne retrouve plus le lien), il faut passer par les "vcredist.exe": avantages: tu l'installes via un "vcredist /Q". Inconvénient: bah, ton appli se bouffe 3Mb dans les dents, quand bien même la DLL compressée doit faire dans les qqs centaines de Ko. Et non, ce n'est pas aussi trivial que de copier une DLL dans System32.
Sinon tu peux essayer d'utiliser la mscvrt qui est installé par défaut sur Windows 2000 et + : c'est celle de Visual C++ 6 (msvcrt.dll), qui contient une tétrachiée de bugs/trucs pas trop conforme. Normal tu me diras, elle date de la fin des années 90. C'est aussi celle qui est utilisée par défaut par MinGW. Cela dit, je ne sais pas trop comment faire pour dire à VS2008 d'utiliser cette ancienne version.