Sorry to start a thread that I already know won't go very far but I've spent an age looking for the solution and eventually found it (this solution was posted by GreenGandalf in a thread about normal mapping, as far as I remember) I thought I'd give it a title that might turn up if someone searches for it! My problem was this:
My .x model would not display textures properly when additional texture levels were added and also wouldn't work with any shaders, I was using Evolved's lighting shader in particular.
Here's the solution:
My model had been unwrapped with Ultimate Unwrap3D which add some information to the file that makes it not work for some reason (I'm not really sure as to the reason, if someone could tell me I'd appreciate it

); you can tell if your object has been unwrapped like this by opening it in a text editor, it'll say something like this at the top:
// DirectX 9.0 file
// Creator: Ultimate Unwrap3D Pro v3.18
// Time: Mon Sep 14 13:32:58 2009
To fix this simply add the line:
convert object fvf OBJECT_ID,274
to your code after you load the object and as if by magic all is good again! I'm not sure about the numbers in this function call, it doesn't seem to be model-specific but perhaps it is usage specific? If you know, I'd love to hear it!
Thanks,
BC