There is no real reason why a contractor should ask for payment before he commences on site. If the contractor is an established company he will be able to fund his labour for the first month and materials and plant will be on 30 days credit anyway.
I can understand a householder being asked to pay a deposit where he/she has no track record with the company, as there are unfortunately people around these days who refuse to pay for work properly carried out. Under these circumstances, it is reasonable for a new client to be asked to pay a deposit. You may still be able to negotiate with the contractor/supplier or you may find another company with less onerous payment terms. There is no need to pay up front!
I have seen a few instances recently where clients have been forced to stay with an incompetent contractor or expensive supplier just because they have paid all the money up front. Then they have no lever when things go wrong.
Regardless of the project, I recommend you always hold back a sum of money until the works are satisfactorily complete. It is very difficult to get contactors back to complete defective work when they have already been paid in full.
You don’t have to pay money upfront!