The first step to asking for more money is to save enough to be able to do so.
In your case, I'd recommend trying to work 6 month contracts and always try to have a new one in the queue for more money, if possible, so you can ask for an increase at the end, or take the other job. But be classy about it.
I would take it one step further. Always have at least two active contracts at any given time. Real leverage.