I'm ATI and as far as I can tell, my fog consists of some mapper-placed sprites. If not sprites, then simplistic, oversized, individual volumetric particles. It's hard to tell sometimes, but it's clear that they're just individual points placed through the map, as you can move around and see that they're thickest at their centre and they're very obviously round. That's how it is in CSS and whatnot as well. The engine can't actually do real fog (though I believe they do try to use the special nVidia simulated fog for those cards).
As far as hitboxes are concerned, the Source engine has painfully inadequate hitdetection and it all stems from their insistence on trying to implement antilag devices. It's well intentioned, but the result is a complete pain in the arse. The main problem Ins has right now is that for reasons unknown, the game has shipped with a default cl_interp value of 0.017, which basically means it's set for 170ms ping. Even CS et al only have a default of 0.01 (still too damn high), but 0.017 is crazy. Since 90% of people are playing on low ping servers, they're able to fire behind a player and provided that they passed that point within the last 170ms, you'll score a hit. It's basically a safety buffer for players with poor aim or reaction time, which is not what it's SUPPOSED to be.
Valve could fix the problem by making it a dynamically updated value based on ping, but they don't care about their engine being useful for internet gaming. Just so long as it looks pretty.