Didnt see that you mentioned, are you plugging the XP box directly into the Linux box without a hub/switch?
If so, this may sound basic, but are you using a crossover cable?
You didnt mention what network cards you have, a few of the new ones will handle the crossover on their own, but most dont.
If the XP box is showing cable unplugged, its a hardware issue first. It will show the cable as connected, even without a working IP address.