Sim, se você definir as propriedades do projeto para usar 32 bits (x86 eu acho) explicitamente, ele sempre será executado nesse modo. Tivemos esse problema ao usar o provedor SQLite ADO.Net (ele estava procurando apenas pela versão de 32 bits, que não pôde ser carregada quando executada em um sistema x64).
Você pode usar corflags para definir o sinalizador de bit de 32 bits (ha ha) no executável. Aqui está um exemplo . Em suma, você vai correr:
corflags /32BIT+ assembly.exe-or.dll
Você encontrará o corflags.exe instalado com o SDK com o Visual Studio (installed in C:\Program Files\Microsoft SDK.0a or 7.0\bin)
ou poderá obtê-lo a partir do Microsoft Windows SDK para Windows 7 e .NET Framework 3.5 SP1 .