I have also come home in the past to a nasty credit card bill that I could have done without.
Not sure if you can wire the funds directly to the hotel or not but what I do is use a travel agent that will book and charge me for the room in advance. I have found that this works really well.
I just came back from staying at the Sheraton hotel in Cancun, the hotel price if you booked via the hotel was $200 per night (ouch) I paid though a travel agent and only paid $98 per night so I was very happy.
I did the same last year when I went to Asia also.
I used
www.airnet.co.uk on both occasions.