Samba.
Depending upon which distribution of Linux you're using, you should have Samba already installed. You can use Samba to share files, printers, and even setup a domain controller all using a Linux box. A good place to start is
http://samba.org.
If all you want to do is pull and push files to and from the XP machine, but not pull files from the Linux machine to the XP machine, you should be able to mount SMB shares (windows shares) without even running samba. Just do (as root) "mount -t smbfs //path/to/windows/share /mnt/mountpoint" As long as SMB support is compiled into your kernel, it should work.
As for the printer on the XP machine, you should be able to connect to it also as long as it's supported by your printing system. I use CUPS, and I can connect to network printers.
I'm afraid you're going to have to RTFM for that because there are so many different configurations depending on which printer you have, I can't go into detail.
Good luck,
Phathead