There is no reason why XP "doesn't like" a cross over cable. Thats a bunch of crap.
If he's not using a router, then one of his pc's will have to have two nics in it. One nic will act as the gateway and get assigned the public ip from his ISP the other will have a private ip. This nic connects to the other pc's nic. Set both of these to static ip's. This way XP won't be able to autoassign that 169 ip. If it still doesn't work like this then something else it wrong. But start here.