I usually work solely on fixed-price contracts.
Whether or not I need payment up front depends solely on the company, if they have a track record of hiring and paying freelancers or if I have done work for them before I don't really mind about the upfront payments (unless I'm short on cash).
For a new company I would ask for 50% up front or on a project that's larger 25%, the largest projects would be 10% up front.
If companies don't like the pay up front and you aren't certain about them, the best way to go would be to set certain milestones, so that you get paid for sections of the work you complete. You get to see that they will pay, and they get to see that you are doing the work to schedule and a high standard - everyone is happy.