jetWeasel enables this by allowing the Windows 98 machine to act as a raw network printer, which is close enough to the JetDirect protocol to keep the Windows XP client happy. I found several fullblown LPD servers for Windows 9x on the web, but they all wanted money or sucked in some way. Since jetWeasel weighs in at roughly 300 lines of code, a big chunk of which is straight from MSDN, and works, I thought it a better solution. Perhaps you will too.
I suspect various other combinations of Windows versions will work, but haven't had occasion to try.
If you want details of usage you may look at the README file
You may download jetweasel with source below: