Screwing up someones shipping, after all the other issues the guy has had with them, is inexcusable. I agree with the OP that this is a totally jacked up situation.
We hear some of the very worst customer support experiences out there. While this guy's experience isn't as bad as the large majority of them, we cannot discount the fact that when a company makes the most basic of mistakes, it's still THEIR mistake.
Making him pay for half of it is pure bullshit. I'm sure that by the time he was contacted by a second person, this one a female....and don't think for a second that wasn't part of their overall plan to get him to capitulate; males agree more readily when a female is doing the asking than a male....he probably felt the situation was going to get much worse if he didn't go ahead and pay it. I don't like throwing $20-$30 out the damned window because of someones mistake any more than the next guy, but I would have probably done the same thing as he did just to get my expensive computer back to me for sure.
Overall, it has been a horrible customer service experience. Were I to place myself in the OP's shoes, I would be just as angry as he is.