I don't have an opinion of how MW2 compares to Halo 3 when it comes to hit detection, but I don't see how people can even complain about the hit detection in MW2 (or pretty much all of the recent CoDs at that). Hit detection in the CoD games have been near perfect for a long time now, and absolutely trump most other FPSs (like the Battlefield series, don't get me wrong, love BF, but sometimes...bah).
When people say they see on the killcam something other than what they thought they saw in game, that's not a hit detection issue. That's an internet connection issue. You're lagging behind the host/server, and so you'll end up with a different picture locally than what the server sees. That's not really hit detection. In a theoretical, lagfree game, hit detection is spot on. You can shoot the very top of a guy's head, and get that head shot. Or shoot a foot, or an elbow. That's pretty damn impressive hit detection. I have never once shot someone where I was absolutely damn sure my sight was over a guy, and it didn't register because the game's math was off. If it didn't register, it's pretty damn clear I was lagging.
Edit: Oh, and for knife hits, I bet they don't really use hit detection. They probably don't plot the course of your knife through the animation, and see if it actually hits something. It's more like, if your enemy is within a certain range of you, and within a certain radius around the center of the exact direction you are looking, you get the kill, and the animation follows suit. That's why Commando knife kills make it look like the person is gliding. Commando extends the range that is used to calculate that successful knife hit, and so the animation will just "teleport" you to the person to follow suit should math determine that you had a valid knife hit on the person.
Edit edit: I'm just running with thoughts here. I know you can knife some of the surroundings, like a can on a shelf or something, and have it move. So I wonder exactly how knife hit detection is done, then. Maybe they do actually plot the course of the knife, but that wouldn't make any sense in the context of Commando, since you only glide if you actually get the person, not if you just swing the knife randomly. Either way, the math is all there, and from personal experience, it's pretty sound. Connection issues on the other hand, that can frustrate people.
Summary: LAG =/= HIT DETECTION. They are not the same thing, and though they may appear to have the same outcome, they are two completely separate issues.