I always make sure the client buys the domain. It's not worth the small amount of money from reselling to deal with clients at every renewal.
For hosting, I use an affiliate account and tell the client if they use my affiliate I will give them $25 off. They are happier and I get an extra $25.
As for pricing, I do a 50/50 split. 50% to start, 50% when finished. I think this is customary and it motivates both parties to be honest.