Drupal is an amazingly powerful, extensible CMS that is growing by leaps and bounds since the first time I was enticed to use it. It does however, have some required modules to make it stand up and dance. This is my list of modules you "need" to make a common website work.
This article will likely be a work in progress for a long time coming!
I am purposely not including the many CCK field modules as those will vary from project to project.
ACL - Access Control Lists -> provides support for Content Access
CCK -> Essential. Content Creation Kit. The module that gives Drupal the ability to support arbitrary content types.
content access -> allows you to manage which roles/users can get to content, used in concert with ACL
contemplate -? allows creation of templates for CCK types to control how they are displayed
devel -> handy developer module
google analytics -> provides module support for Google Analytics (requires account)
image cache -> image manipulation capabilities for imagefield
image api -> support module for image field/ image cache
imagefield -> cck field support for images, allows uploads of images easily
jstools -> Javascript tools that provide all that Web 2.0!!! functionality
nodereferrer -> provides a CCK field that can refer to other content types (think of it as a DB foreign key)
pathauto -> provides the engine that creates all those fantastic readable URL's that gives Drupal strong SEO capabilities.
token -> support module for pathauto
Views -> Essential. The module that gives Drupal the ability to list all your custom content as well as provide innovative ways to display content you already have, with no code!
Leave comments about your favorite modules and they will get added to this list over time! Include links if possible.

Comments
update status -> know when the core and modules have been updated! This has been rolled into Drupal 6
ACL: I can count on one hand the number of sites where I've implemented advanced access control. Of course, if you're building primarily something like Intranets, then something like this is usually going to be needed. Coherent Access looks to be interesting / easy.
Contemplate: is death. Don't use it. It is a shortcut to do theming, but it puts code in the database, rather than under version control. It is a stepping stone, one needs to learn template.php and page.tpl.php theming where this is properly implemented.
JStools: a bundle of random javascript that needs to eventually be replaced by "pure" jQuery versions (some have already). Not so bad, but I flag it as a potential source of trouble.
If you're doing comments anonymous usage, you should use Mollom for anti-spam.
I'll come back and add more of my "must have" list later.
ACL -> bingo. The point of ACL is that sometimes you can't manage everything on a Role/Taxonomy basis. Coherent Access looks interesting but at this point it has no 6.0 equivalent. Will keep an eye on it.
Contemplate -> Yeah, I saw something to that affect in the comments about the module. It is nice for quick and dirty prototyping though. Your warning is noted.
JSTools -> yeah, it's a group of hacks.
Mollom -> haven't used that one. I have used Akismet with good success. I will look into Mollom.