This is the number one question I'm asked, and usually the number one search term bringing people to my site. The sizes make a little more sense if you know where they came from …
In the beginning there was short (8 oz) and tall (12 oz). Nice and simple, right?
As espresso drinks became more popular, people wanted a bigger size. Thus the grande (16 oz) was born. Short, tall, grande — still makes sense.
But serving sizes in the US always trend larger and larger, so soon an even larger size was introduced — the venti (20 oz hot, 24 oz cold to account for the ice). This is where things started going off the rails sense-wise, because not only does this create a “large” with a name that doesn't mean large to your average American, but they dropped the short off the menu boards to save space, leaving the tall as the smallest size, where once it had been the largest!
Recently they introduced yet another size for certain drinks — the trente (30 oz). So now the grande, which most people would guess to mean large, has two sizes larger than it!
And that's the story of why Starbucks drink sizes make no sense. You can still buy drinks in the short size, incidentally, if you want to save a dime or two or just don't want that much to drink.
Side note: occasionally I hear the tale of a barista snootily pretending not to understand the sizes small, medium, or large. Either these tales are exaggerated, or the barista is terrible. When I worked there, company policy was not to correct the customer, just to use the official terminology when reading back or calling the drink. Nearly all baristas will just ring up small, medium, or large as tall, grande, or venti.