CO poisoning - What I've been taught is a hoax?
Each hemoglobin molecule has 4 subunits (4 hemes each having one iron atom). Each time a molecule (such as oxygen or CO) binds to one subunit, it changes the binding properties of the other subunits. This is referred to as positive "cooperative binding" in the case of hemoglobin, because binding one molecule makes the other sites bind more easily.  

Initially, considering hemoglobin with no CO or oxygen bound, CO competes with oxygen for the same binding sites (ligating one of the iron atoms).  CO has a binding constant 300 times lower than oxygen, meaning a factor of 300 lower CO concentration will result in an equal percent of bound protein.

Considering CO has reached a level such that 2 out of the 4 sites can have CO bound, the remaining 2 sites would still provide enough oxygen carrying capacity for a person to live if the sites were function as normal; however, the 2 remaining sites then bind oxygen too tightly and don't release it.

Other iron-containing proteins such as myoglobin can also bind CO and are also inhibited.

See Pharmacokinetics and Mechanisms of Action of Carbon Monoxide for more infomation.