I think you've got the right idea already -
Collect in advance. I have a different business than you do, but we try to get as much money up front before we start. That way we aren't sitting around with big bills of our own, waiting for customer ayments to come in.
As for going to her work - I don't think it's illegal. I can see how it'd be very uncomfortable for the customer. Unfortunately, occasionally you have to do things like that to get payment.