Whether and when you are able to select a specific seat varies a lot from airline to airline, and even from flight to flight in some cases (i.e. long-haul/international vs short-haul/domestic).
This can range from anyone can select a seat for free at time of booking, to no-one can select a seat at all (though this is becoming quite rare), with intermediate steps including:
- only premium passengers (frequent flyers with status, first/business/premium classes) may be able to select a seat at time of booking, or at all
- ditto, but they get it for free while others have to pay
- you need to pay to select a seat
- you can only select a seat when checking in, not while booking
- you can only select a seat if you book the flight directly online on the airline's site, not via another (partner) airline, another site, on the phone, via a travel agent...
Also, the booking process itself may not necessarily include seat selection immediately, it may often be a secondary process after the booking is made, which is not always very obvious for non-seasoned travelers.
So, there are many cases when seats are not assigned until check-in. Even if you can do online check-in, you can end up in situations where you can't do the check-in online, and are invited to do it at the airport (that's often an early hint of possible overbooking), or your boarding pass explicitly states that you will be assigned a seat at time of boarding.
Of course, there are also a few airlines that don't assign seats at all and let passengers pick at time of boarding.
Add to that operational issues (switching one plane for another, issues with the plane or crew which reduce its capacity, premium passengers from earlier delayed/cancelled flights...), and you can end up with quite a few issues.
There are often more issues with "traditional" airlines (as they have more "flexible" tickets and premium/elite passengers for which overbooking makes sense, and more variations in aircraft types) than with LCCs which don't really need to overbook: once a seat is sold, it's paid for, whether the passenger actually flies or not, though the line is not necessarily that clear-cut.