Roofers should not ask for the entire amount upfront, but a deposit is okay. You should agree to terms and conditions of deposit before they start working. The deposit should be at least 20% of the total quote. However, don't spend much more than that.