You also need to look at risk. In contingency recruiting, 100% of the risk is on the recruiter. Company pays nothing until a hire is made, so companies can engage all the contingency firms they want and most will be doing free labor - spreading the word about the company, drumming up interest - it's free PR for the company. I could find 10 perfect candidates and spend many hours, but not make a dime if none get hired or if the company changes direction.
In fully retained recruiting, all the risk is on the company. The company will pay money out and may get mixed results. My model tries to split the risk a bit, with small upfront fees and small back-end fees (all flat fee and unrelated to salary).
Negotiating with a couple recruiters to pay them some money up front with additional back-end payout for performance may yield better results for companies that complain about contingency firms. Recruiters will appreciate you reducing their risk, and by removing the risk a company should be able to negotiate a lower fee.