Everybody who's posted so far in this thread has overlooked one key detail. Older games such as Call of Duty do not support DirectX 10
at all because they are written for DirectX 9, and DirectX 10 broke compatibility with previous versions. Because of this Microsoft included a legacy version of DirectX 9 named DirectX 9EX, which includes the majority (but not all, see below) of the features of previous versions, with a few enhancements. This was included for compatibility with older games and is what is used whenever you play a DirectX 9 or prior game on Windows Vista, so DirectX 10 is irrelevant when running these games.
.Jamie, on Jul 1 2009, 12:13 AM, said:
[...]That doesn't mean that it doesn't work however, just doesn't use DX10 to its potential.
Yes, it does. Like I explained older games will not use DirectX 10
at all because it is not relevant in any way due to the broken backwards compatibility and DirectX 9EX is instead used.
BenjaminCharles, on Jul 1 2009, 03:06 AM, said:
Older Games such as Call of Dust 2 don't support the full power of DX10.
Though DX9 Games will work, There are a few exceptions.
If you get the error "can't find dxd39d_xx.dll" or something similar. You will need to download that DLL in put in directly into your Windows Folder.
I had to do that With RE4

Again, it is not going to be used
at all. As you have seen from your experience, Vista's implementation of DirectX 9EX is not perfect. There are some key DLL files missing which are required by some older games and you can either manually replace them one by one by reading a game's error message and then Googling that key DLL file required, or install a copy of DirectX 9c designed for earlier Windows versions. The latter is going to be less hassle than the former because it already includes all the files that such troublesome older games may require; once installed you can throw all your "can't find d3d9x_xx.dll" worries to the wind. I've done this with a few troublesome games and have had no problems whatsoever.