I look at it this way:
I live in Phoenix, AZ. If you (your company) want me to work for you in Chicago, New York, Atlanta, whatever, you are going to pay for every expense that comes up from me being in that place. If I wanted to work or be in any of those places, I would fucking move there. You want me there? Open the wallet, or shorten your expectations.
If you own a company and want to do work to work in a different city and want to be a cheap ass about it, then open an office there & stop bitching about travel expenses. I personally started leaving all my cash & credit cards at home before trips. The company should provide a credit card or upfront cash for you. I learned the hard way, and was stranded in Denver with a bullshit check I was given for expenses that you could have played handball with. 26 hours on a Greyhound bus will enlighten anyone on how most employers are completely full of shit and not to be trusted at all. Cash or credit card up front, or stick the road trip up your ass.
An employer is only as trustworthy as the last check that cleared. Nothing more.