Oh, wow, we're really picking on the poor OP, aren't we?
To the OP: Yeah, a whiny player can be a pain in the butt. I've had players that have thrown tantrums, left the room crying (yeah, CRYING - back when we were fifteen, believe it or not!), and get sulky when their characters died (or even when their characters didn't get to be the one to do the really cool maneuver). But whiny players are a whole different problem.
However, in most cases, this behaviour just doesn't instantly appear. Quite often, it appears because it's a way for the player to passive-aggressively bring up a problem they have with your game, without actually having to speak to you about it.
When I play, if I get to an encounter I really don't like (ie, if my rogue encounters his seventh construct in a row, or if a GM describes a vivid rape scene - I'm against that sort of stuff in play, btw-, or if the GM lets the fighter disarm the trap because he happens to like the player of hte fighter more), I tend to adopt certain poses. I might become overly quiet, offering minimal responses to questions. If there is a really graphic torture/rape/naziesque scene playing out, and the GM asks for my action, I'll try to do something that will take my character (and thus, me) out of the encounter while still trying to help out my companions - I might buff allies, for example.
The point of this is, if I don't like where the GM is going, I try to point it out through my behaviour. And if the GM doesn't get the hint, I bring it up in a face to face only as a last resort. A lot of people don't like having to talk to their GM - often someone who has spent HOURS prepping material - and telling them that they're not enjoying part of their GM's game. In fact, no player has ever done this with me, even though I'm sure I've had bored players at my table in the past.
On the plus side for you, the players are coming back. That means that they like your game at least enough to put some effort into playing it. The way I read it, it seems as if your whiny player is adopting this tactic as a way to suggest to you what he finds wrong with your game. Personally, just take him aside and ask him what you could do to make the game more enjoyable for him.
As it stands, it almost seems like you're saying "he should just enjoy my game the way it is!". You're not doing everything right (as some other posters seem to enjoy pointing out), just like your player.
By the way, I actually had a very similar encounter to yours about two years back, only I was on the whiny players' side.
We had a group of three players (one of whom played two characters). Our group consisted of a 4th level Cleric, a 3rd level Scout, a 4th level Spellthief, and a 4th level Monk. We were not the best group out there, but we had fun.
The first parts of the campaign went great - while the fairly new GM made a few mistakes, they weren't so big as to make the game annoying to us. But, around the time we hit 4th level, things started getting bad.
First, he described a rape scene in disturbingly vivid detail, and seemed to be chuckling while he did it. Now, I really don't like that sort of stuff in my games (As I said above), but the other two players liked the idea of being heroes and saving the day. And, since the rape was taking place in a burning village, I occupied myself by rescuing villagers while my companions were suitably heroic. But, I was pretty quiet through the whole encounter, hoping the GM would pick up my cues that I didn't enjoy this encounter.
He didn't. The other two players did, though.
Then, we get shoehorned into an adventure we don't want to take, because it goes against our goals, and because it was a fight against ogres, and we knew very well our group couldn't handle it. But, trust the GM, and all that jazz.
Along the way, we pick up a group of 4 6th level characters, all fairly well-made NPCs (I think they were a perfectly balanced adventuring party). These allies of ours start taking the lead, so that we were basically following them on our mission.
IN fact, the first fight, the players sat back for most of it and watched the GM roll actions for the ten tough bugbears we were fighting, as well as the four adventurers, while our group took on a few hobgoblins.
It wasn't until I humbly suggested that the players could probably run the NPC allies that the game sped up a bit, and we had a bit of a say in the game. But it still kind of sucked to watch our 4th level PCs doing little.
All of us were looking bored at this point. Our shoulders were slumped. My friend kept staring into space. My brother was reading through rulebooks, and putting together a new PC. I did that thing where you roll dice, and doodle on your character sheet. But the GM, rather than noticing our cues, plowed on with his adventure as planned.
Long story short, we came across a fight against three ogres. With class levels. We ran the fight, and at least at first, we were excited about it. After all, this would be a chance to actually DO something.
Until the ogre, with one swing of his club, killed one of the 6th level characters in one hit. And another 6th level character was gone the next round. Our 4th level Cleric was killed in one hit when he got close to an ogre; that same ogre knocked the monk into negatives immediately after, thanks to his cleave feat.
My spellthief and the scout tried to flank the ogres using a network of caves nearby, while the ogres chewed through those 6th level NPCs. And then we just sort of... gave up.
We never played with that guy as GM again. He's welcome at my table, but if he ever offers to run a game, I'll say "sure, maybe next month or something" and then pretend I forgot.
The moral of this is simple: he's probably "Whining" because he DOESN'T like your game right now, but likes it enough that he doesn't want to quit. And something tells me you missed earlier, subtler signs that he isn't having fun.
In the end, think of this: why are you running a game? Ideally, you should be running a game so that you and your players have fun, together. Now, take a look at your story:
* Are you having fun? Probably not. You have to deal with a whining player, and your actions (putting the player in situations where his character is completely useless, all to kowtow to what is "realistic" in your preconceived plot) are directly causing this player to complain.
* Are your players having fun? Doesn't sound like it, for the most part.
I guess I'm just saying, in a very roundabout way (gimme a break, it's 3:30 am right now, and I'm sick!) that maybe you should listen to what the player is saying, instead of just complaining about him online.