Karen, legitimate companies do not pay you in advance. There are scams out there that would make one think that they do. The reality is that on average it takes a company 4-6 weeks to pay and reimburse you after your report is submitted. A few companies pay in 2 weeks or so, some pay in 90 days and some, in this economy, are taking many months to pay stuff that was supposed to be paid in 30-60 days.
It is hard for companies to find people to take the jobs that cost a lot of money . . . for lots of reasons including the obvious. With some of these jobs you can put a purchase on your credit card and return it within a few days for full credit (though obviously you can't do that with restaurant, fast food or gas shops). Just make sure you have made a copy of the receipt for your shopping records before you return an item as they may mark up your receipt.