I wrote an in-depth article on this on my blog here: http://www.sharpgis.net/post/2007/05/05/Spatial-references2c-coordinate-systems2c-projections2c-datums2c-ellipsoids-e28093-confusing
It covers all these concepts in a hopefully easy to understand manner, and has been peer-reviewed by several.
To sum it up: A datum is a definition of the size, orientation and position of an ellipsoid used as an approximation of the earths shape. It uses reference points on the surface to define thisit's placement and orientation, based on a date (which is why a number is in there for the year it was defined to account for tectonic plate movements). Datums are used in both spherical long/lat and projected coordinate systems. Consider it a reference point for your coordinates and ellipsoidal heights (ie where's the primemeridian, equator, and what's the height relative to the ellipsoid which isn't the mean sea level). Different datums are used different places because some fit some areas better than others.
A projection is a formula used to convert long/lat coordinates into a flat coordinate system that you can use on paper or a computer screen. It's usually done from a geographic coordinate system, which in turn uses a datum as it's base definition. So the datum affects all of it. Projecting data creates a lot of distortion of the real world, so it really should only be done when putting your map data on a flat map, or you want to work in a "simpler" coordinate system and can live with the distortions.
[For some reason a moderator deleted this post earlier. Not sure why. I believe the article linked above explains this concept in a better full view than the answers above. I could just copy/paste the entire website to make the moderator happy, but that's not how the internet works.]Using the wrong datum could result in your data being offset up to about a mile, so it's quite important to know the datum if you're mixing data together.