That's just... not how business works. Milestones are organised such that the client can get the things he values with a reasonable probability. Even setting the milestones up as he did is risky, since the dev could just have decided to take 3/4, ship crappy code, and disappear into the interwebs. I guess in this case the client was relying on the reputation system of e-lance and the relatively small amount of money involved, but still.... when I read that he'd agreed to the final payment on such a flimsy acceptance clause I was ready to read a really bad end to this.
Not sure why people are emphasising the money so much. For a dev in NYC $800 is very little. For a guy in China that's a much better deal. Kind of the whole point of using e-lance, no?