The issue of no-shows and overbooking actually originated in the days when most tickets could be purchased at any time (i.e., no advance or instant purchase rules), and the airlines had no way of knowing if a reservation actually had a ticket issued against it. So 40 people would call and book a seat on ABC airline from point A to point B, 15 of those would go to their agency or ATO and pay for their ticket in advance, 10 would pay for it at the airport on the day of departure, and the remaining 15 just wouldn't ever pay or show up or bother to cancel their res. As mentioned above, in some markets (heavy leisure and heavy business routes particularly), the numbers that no-showed could be significant. So, to compensate for those that booked and never purchased/never flew, overbooking became the norm.
As the sophistication of reservation systems increased, along with the prevelance of advance purchase requirements, the ability to cancel reservations that had been booked but never ticketed greatly diminished the amount of actual (or potential) revenue lost. However, sophisticated yeild managment systems at many airlines now allowed carriers to attempt to try and maximize revenue. Basically the airlines started gambling on the number of folks who would buy a ticket, and still not show up, so they could sell the seat again - basically double dipping on the same seat. The airlines still claimed that it was to protect themselves from no-shows, and to an extent it was, but the airline's revenue models actually counted on that revenue from the ticketed no-shows.
People began to realize what was up, and thus the drive for protection from being 'bumped' was born.
Of course this is a gross generalization across the whole industry, and many carriers don't overbook at all anymore, but it's still a pretty good overview of the concepts and history behind the problem.
"The two most common elements in the universe are Hydrogen and stupidity"