I'm flying from A to C via B with Norwegian. Booking flight ticket from A to C costs 285.20 euros. If I buy flight ticket first from A to B and then from B to C, total price is 253.20 euros with exactly the same flights. Both total prices include luggage. Why booking the flight in parts is cheaper than buying the whole flight at once? What's the catch?
The catch is that if you book the tickets separately and then the flight from A to B is delayed, causing you to miss the flight from B to C, it becomes your problem to arrange for alternative transport from B to C. The airline has no obligations towards you, even if it was their own delayed flight that caused the issue.
If you had booked the entire trip as a single ticket, the airline would however be responsible for getting you to C if the earlier flight was delayed. This may include putting you up (for free) in a hotel overnight if there are no more flights to C on that day.
Of course, the airline may exceed their obligations and put you on a later flight at no or little cost to you. But the only way to be sure that failed connection will not result in significant additional cost is to book the trip as a single ticket. Budget airlines, in particular, are unlikely to show you any flexibility.
[The other answer points out the danger of taking advantage of 2 separate bookings. It's true, although it's not WHY they are cheaper separately. Be very careful booking two separate tickets.]
The reason for the price difference is that your airline is less likely to sell tickets in B (eg Air Canada doesn't come to mind for US people) and so it is offering lower prices to bring people to them. I have seen this with North America to Europe flights through Iceland, though that comparison is A-B, B-C with the Iceland airline vs A-C with some other airline. So for example, Air Canada might make SEA-YVR-SEA and JFK-YVR-JFK cheap, since less US people are going to choose them, and you might be able to combine these to get SEA-JFK for less than any US airline will sell you a direct flight. My example is imperfect, because Air Canada won't sell you SEA-JFK - that would be cabotage - and so you can't say the two connecting flights are cheaper than a direct from the same airline in that case. But still a similar setup could happen all within a single country.
When WestJet first started offering flights in the eastern parts of Canada, it was less well known and had to offer lower fares to attract customers. I wasn't following fares then, but possibly going between two western cities via an eastern city, even though it would take much longer, could cost less if they were pricing eastern-city-involving flights more cheaply.
There are a few different concepts that come into play here.
Firstly, the reason that the ticket costs vary is that airlines normally price based on the start and end point, regardless of how you get between those two cities. So in your case there's actually 3 different flights being discussed here - "A-C", "A-B", and "B-C". The fact that the A-C flight goes via B doesn't necessarily come into play with pricing. From what you've said, A-C is more expensive than A-B plus B-C, which isn't at all unusual.
However, what you're seeing shouldn't happen with any worthwhile booking engine. Most flight booking engines will consider the various possibilities when pricing flights, and in this case it should automatically realize that the pricing A-B,B-C is cheaper than A-C and price the ticket at the lower rate. If this isn't what you're seeing then I'd suggest trying to book the ticket on a different website, with a travel agent, or over the phone. You may also want to try entering the flight as a "multi-stop", and manually put in the stop in B which should cause it to price it as two separate fares.
Despite what others have said, there is NO disadvantage to booking the two flights individually - as long as your two flights are booked on the one "ticket"! ie, if you book both flights at the same time, get a single confirmation number, and a single ticket number, then it's exactly equivalent in terms of what happens during delays/etc as if you had booked them as a single flight. This is what you'll get if you book them as a multi-stop fare as mentioned above.
If you book them as two completely independent flights on different tickets (ie, you book A-B, pay for it, and then book B-C and pay for it separately) then there can be difficulties in the event of delays/cancellations/etc as others have said, and I would avoid doing that - but there should be no need to do that.
A good place to check fares like this is http://matrix.itasoftware.com/ as it will not only show you to the cheapest fare between the two locations, but if you drill down it will show you exactly how that fare is being priced. eg, I just did a quick test from SMF to SJC airports in the US, and it gave me the following :
So it's actually booking that flight as two separate airfares - one from SMF (aka SAC) to LAX, and a second from LAX to SJC. If you were to book that you'd still get one ticket, one confirmation number, and still get looked after in the event of any delays/etc - but you'd technically be booking two individual flight, with individual prices.
Are both options with the same airline? That can affect it.
If it is, then it's probably a promotion or less-used route that they're trying to attract more people to. It could also be to fill the plane. For example, last year I flew from LON to Vancouver, and the plane stopped in Edmonton, Alberta and let a few people off. Very few fly from London to Edmonton, so it was cheaper for the airline to fill up the flight with a few Edmonton people, than to try and fly just that route. Then they could continue to Vancouver, and odds are, they fly direct back to London with a full plane load from Vancouver if they can.
However, if it's different airlines, well it comes down to hubs. Often you can get cheaper flights if they're in and out of a major hub. For example:
Two years ago I flew from Miami to London. There was an Air Berlin flight to Dusseldorf, then London. However it was cheaper for me to fly with them ONLY to Dusseldorf, take a train 20 min to Cologne, and fly EasyJet from there to London, since EasyJet uses Cologne as one of its flight hubs.
The downside is if the Air Berlin flight was late, I could have had trouble. I got around this by only booking the EasyJet flight when I was in Cologne - they had plenty of tickets :)
Basically having two separate tickets is a hassle that I would never advise with by any means. If you are for the adventure and the gamble by all the means you go for it but the channel that you booked with won't help, if you have a travel insurance it won't help so you gotta prepare yourself if you're gonna go with this option