Yeah... the fxc compiler is DX10's compiler no matter what version of DirectX you're using (with the exception of the DX11 preview, I believe). If you have the latest DirectX SDK then all effects, whether you're under DX8,9 or 10 are compiled using DX10's effect compiler. I'm also on XP. When you run fxc, what version does it tell you that it is? Do you have any strange whitespace characters or perhaps something you're missing in your file? do any effects compile for you at all? download an example from the community site and see if you can compile those effects. Otherwise it sounds like you've either got an old or broken version of fxc. You may have to uninstall and reinstall the DirectX SDK or install a newer version. Sorry man but I don't think the code is the problem.
Also, DirectX 10 is not supported on XP, but some of the tools are; like the effect compiler. Also, they package the same SDK and redistributable together; so if you've got the latest and greatest windows is smart enough to know it's running DX9 but you have the tools,headers, libs, and dlls for DX10. There is nothing preventing you from writing code using DX10 API calls or compiling it, Windows XP simply lacks the driver support so it won't run... that's the part that isn't compatible. The newest version of the SDK even comes with a DX11 preview... which we can also code and compile using our dusty old Windows XP installations. It might looks weird to you, but that's actually correct. Good luck.