I think the problem is service pack 2.
This worked for me:
My windows xp comes with sp2 I couldn´t find any way to uninstal sp2. So i aguired winxp disk with sp1.
Formated the hardrive installed winxp with sp1 then I installed directx 9.0c and then sp2.
Now the dxdiag says:
DirectX version: DirectX Version 9.0c (working uje)
And now Sims 2 works.
until microsoft releases a patch or somekind of a fix. This is the only way that worked for me.