That would be standard practice for most shops but we mainly deal with fleets where we don't get paid by the vehicle. They pay for everything we've done that month. If we do end up working on a personal car it's usually a friend of the bosses and he'll let them take the car before they've paid. Although that usually isn't a problem. I can't say it never has been but the accounts I'm dealing with right now are fleets whom we no longer work with, some due to their lack of payment and others just because we relocated and aren't close to them anymore and they just won't pay their final bills
First, if as you say your business is dying because customers aren't paying, you really need to rethink the way you run your business. The reason it is standard practice for most shops to collect on repairs before releasing the vehicles to the customers is so the shops don't die due to deadbeat customers.
No car should be released until the car repairs are paid, whether the vehicle is a fleet vehicle or not. You could perhaps give the fleets a
discount to retain their business, but they should not get their vehicle back without paying first. If any customer wants their vehicle back, they will either come up with the money or, eventually, lose their car.
To collect on the accounts that are currently past due, you
could hire a collection agency to handle collections on the past-due accounts (for a fee) or you could sue the account holders for the amounts owing (for probably a lower cost money-wise but more cost time-wise).
I wish you and your car repair shop good luck, Mikemincer.