Well there we have it. Xfire doesn't know how to hook a game properly.
I'm going to guess that if it Xfire could look like Steam, both would work.
Xfire should be injecting itself into the game after it has fully loaded, much like Steam does. This is a problem with Xfire's programming, not with OS or any d3d9. No matter what you use, Xfire will crash the game with a hook in the folder. This is just shitty coding by them.
I'm considering making a post on their forums about it in the feature requests section. They should absolutely do it the same way Steam does.
I wonder if this happens for all games. It probably does. It might be the reason why SoftTH (Software Triplehead) disabled Xfire from hooking into the game - because it crashed with everything.
Bookmarks