So, I've been trying to find a workaround. After verifying the registry in Server and Windows 7 show the same DirectX version I went to the assemblies themselves.

The primary DX9 assembly is d3d9.dll which resides in System32 in the Windows installation direction, the helper libraries are d3dx9[something else here].dll

There was only one mismatch.

The version number of DX on the d3d9 file itself on my version of server (Server 2012 Standard) is 6.2.9200.16384, it's dated 07/25/2012.

By comparison the d3d9.dll from Windows 7 Home Premium is 6.1.7601.17514 and is dated 11/20/2010. File size is different by 1 kilobyte.

As an experiment I tried backing up my DX9 assembly and swapping in the assembly from Windows 7. Unfortunately, same error message. So, however they are determining version, it's not through registry or version number stamps on the assembles.

Those are the ways I'd check versions if I was writing the code, does anyone know of other ways they might be version checking? We're probably not regular users for the most part, running server here as our desktop environment. Lets put our heads together.