Are you sure this is XP? The behavior you're describing sounds like you're getting Windows Speech Recognition running, which only runs on Vista and above.
You need an in-proc recognizer (SpInProcRecoContext), instead of the shared recognizer. This needs a bit of work to initialize (you need to attach an engine & audio source). I wrote a bit on this on my blog, but I used the native APIs to do it.
Lastly, the SR engine on XP is indeed not as good as the SR engine in Vista and above. After all, the XP SR engine is over a decade old.