I had this exact same problem. Unfortunately, I was an idiot and gave the guy money up front. He was a friend of a friend and highly recommended, so I wasn't too suspicious. The job was supposed to be done in 6 weeks. The first couple weeks, the work proceeded quickly, and I was able to see what was going on. After this though, I literally started labeling pictures "car moves around shop". It would just be in different places, but nothing was ever done. I started riding the guy hard, and he told our mutual friend that my visits were "stressing him out" and not helping the situation.
I cooled it for a while, and started going back a few months later. This went on for a while, and each time, the car would move, and he'd tell me how I was next, but it never happened. Then one time, I went to the shop and nobody was there and almost all the cars were gone. He had moved to a new location, relocated my car, and never told me about it. This kind of freaked me out, so I told him I was coming with a tow truck. He said it wasn't ready yet, and I said "I know". There was another day where I couldn't get in touch with him or anybody there, so I left something like 20 messages on his phone. These two things inspired him to get started again, but I had to keep riding him to finish it.
I went often enough to know they were doing a good job, this was my big fear, that they would skimp on quality because I was pushing them to do it quickly. The body man actually sympathized with me, and promised that he would do a good job, despite the shop owner pushing him. All the guys in the shop were actually pretty cool, couldn't stand the owner, and did fantastic work. Finally, 18 months later, I got my car back. The day I went to get it, I went to another storage location with one of the guys from the shop to pick up a couple wheels they had stored outside. At this location, I saw another car they had been working on since before mine. It was a '70 Charger R/T. It had been sanded to bare metal and then stored outside for months. At first, I thought it was painted orange. It was the rust over the ENTIRE car. The poor owner wasn't like me and hadn't been checking on his car. Never EVER give money up front, and don't ever be afraid to pull your car if you're not happy. It's not worth the frustration. There are other reputable guys out there who are willing to do a good job in a timely fashion.