So I have a win 2003 server on a domain. Question 1, do I need a DNS service to be running for computers to join the domain?
question 2, is there any way that i can have xp home join a domain? I know you can't but there has to be a way around it. Maybe a hack or something. I need help

All Active Directory domains require DNS, preferably on the domain controller. This should have been setup when running dcpromo to create a domain controller.

As for XP Home joining a domain, I found this little tool. I have not tested it but it comes well recommended: