Probably been suggested before, as with most ideas. Its just something that hasn't been dealt with by Valve
Today, I joined a game of No Mercy on Versus. On the first map, my team managed to kill one of their survivors due to the combination of a boomer, charger and a witch. Even though it was the first map two of their team ragequit. We wait for more players and carry on playing. Second map, my team all survive, and someone then ♥♥♥♥s over their team and rushes out when none of them are ready. Gets killed and then leaves, purely just to troll the team and ruin the game for everyone else. Out of courtesy we restart, but it didn't make that much difference as we all survived again and they all died at the tank fairly early on in the map. Third map, someone kills themselves at the gas station and then leaves, just because their team is losing by about 300 points. This makes everyone apart from one person on their team leave. Two of us change team to balance it up a bit (but it wasn't the fact we worked together well it was just the fact that certain members of their team were just plain stupid, like left a hunter on a guy and ran off, despite there being no horde, no other specials, no tank, meaning that he died). Fourth map, I get quite lucky and get two kills with a deathcharge (smoker + jockey + boomer to blind everyone). One of those players then ragequits and one of the two surviving players suicide and then leave. Fifth map, the final: The score is about 2400:1400 at the start. A tank kills one of our survivors, but then their second tank (a newly joined player) sees the score, suicides the tank and leaves, meaning the remaining 3 survive. Their turn to be survivors, naturally one guy throws a molotov in the safe room and shoots everyone else low health and then suicides himself. After this the remaining 3 players just leave
I go on a public game of expert campaign. I join and am getting on fine with the two players there. A fourth player joins and then decides it to be funny to kill us all right before the end of the map and then disconnect (on official servers this means you have to restart as bots cannot continue without players). This meant we had to do that entire map again, and being a particularly awkward map to do, meant we took another 30 minutes. On the finale, someone who joined near the end of the 3rd map of Dead Centre, decided to shoot the gas can outside of the lift, meaning we all burn to death before we could even leave the lift. Restarting, we try again (we kicked the guy) and we had all of the gas cans on the ground floor (having thrown them down) and quickly threw all the cans near the car while one person filled the car up. A player then joins and then shoots the gas cans near the car to kill the fueler, himself, and one other guy he shot down. We finally get it finished without someone griefing us, but unfortunately the one that needed to survive was killed, so he will have to do it again anyway
Point is, people can join games, ruin them for everyone else and then jump onto a different game. And most of the time the reason that team is losing because its always players down (due to ragequits).
Valve need to bring in a ragequit penalty of some sort. People shouldn't be able to just join a game, ruin it, and then join a different game. Okay, sometimes you recognise names from before and so kick them before they can do damage, but there still needs to be some sort of system to stop people from just ragequitting.
In TF2 MvM, you lose out on rewards if you ragequit and you get a icon next to your name or something if you ragequit more than once. Okay, the only thing players get from playing L4D is enjoyment and sometimes trading cards, so unless Valve bring in an item system (PLEASE DONT YOU ALREADY RUINED TF2), then they cannot penalty players that way.
The best solution will probably be stop people being able to join games after ragequitting. If someone leaves a game pre-maturely, the only acceptable reason is that they have to go do something in real life. Sometimes people leave to join friends' games or whatever, but the only reason to leave a game pre-maturely should be to do something irl. I suggest that if someone leaves a game then they can't join another one for 15 minutes. This will mean people will have to either put up with playing on the game they would normally ragequit on, or have to wait.
With teamkilling or griefing, players should be reported with an in-game system and punished from that. You can also see quite clearly on the stats when someone has high team damage that they must have been griefing. Okay, there is the exception that in the campaigns people are killed to save health kits (killed in the safe room and they respawn with 50/100 health), and also to speed versus games up by shooting someone through the safe room door to end the game faster (this only happens if the person can't be saved and there are lots of specials outside).
These simple additions to the game would at least control the community. You can't make people change and not grief, but you can restrict them from doing it and punish them when they do.