I recently saw a 32-bit program calling a 64-bit utility on the OS which was failing.
The 64-bit util worked perfectly if the user ran it but not if the user ran it via the call from the 32-bit program.
The 32-bit program was a compiled Wise script. Making calls out to 32-bit equivalents of the 64-bit programs was fine. The theory was that the 32-bit program was causing a problem by possibly trying to run the 64-bit program in 32-bit mode/process.