This kind of experience seems to be all too frequent.
If I ever have an accident whre I am clearly not at fault I will always have my car transported directly to a BMW approved repair shop and use Accident Exchange. They will sort a decent replacement car and the repairs will get done where I want them to be done.
If the accident is my fault then I will just have to accept what my insurance company's process is I guess. But thats a good reason for going with one of the companies with a good reputation and paying a bit more than the cheapest.