Drupal

Drupal is a free powerful CMS (Content Management System).
Though many describe it as a CMF (Content Management Framework),
I think a better term would be SOS (Site Operating System),
because Drupal provides the interface between Web sites and users
and allows users to easily customize and control the operation of their Web sites.

Actually Drupal bears some similarity with Emacs.
Both have a powerful and elegant core and provide the interface to extend core functionality
with the help of modules (add-ons, plug-ins, packages) that rely on a set of predefined hooks.
This is the reason why I like both. As an extension language Emacs uses a nice language Emacs Lisp,
but unfortunately Drupal is based on a dumb language PHP. However, regardless of its implementation language,
Drupal is a beautiful system. See also how to configure Emacs for Drupal.

Forms

Submodule of the module CAPTCHA that uses the reCAPTCHA web service. Unfortunately, spammers can pay workers in developing countries to solve CAPTCHAs, where workers are paid between $0.35 to $1 for every thousand CAPTCHAs they solve (see recent article with more details). So it's not easy to protect content from spam when CAPTCHAs are solved by humans, not bots. But there is a better submodule below.

Submodule of the module CAPTCHA that lets site administrators create their own questions to foil automated spam bots. Humans can still be paid to solve them, but a question can be context-sensitive: if a question asks you what is the name of your site, the answer isn't going to be obvious if the question has to be answered outside the context of your site.

Allows you to use client-side editors (a.k.a. WYSIWYG editors) to edit
content in Drupal. It replaces all other editor integration modules
and no other Drupal module is required (perhaps, this module is unnecessary when you use only FCKeditor).

Comments

Sends notification e-mails to visitors about new comments on pages where they have commented.
It is better than other notifications modules
because it works for both registered and anonymous users.

Images

There are two primary ways to add images: with the help of Image.module or
using the CCK field type ImageField. I highly recommend ImageField because
it is more flexible than fixed Image nodes with the hard-coded Image content type
created by Image.module. (There is also a small overview of image-related modules)

Modules related to Image.module

Allows users to upload and insert images inline into content.
It automatically generates an Add image link under fields of your
choice. Clicking the link opens an image browser, displaying all images
that have been uploaded via the Image module.

Modules related to ImageField

Allows you to setup presets for image processing. If an ImageCache
derivative doesn't exist the web server's rewrite rules will pass the
request to Drupal which in turn hands it off to ImageCache to dynamically
generate the image file.

Provides an image upload field for CCK. ImageField is a CCK-based
alternative to the legacy Image module. It boasts features such as
multiple images per node, resolution restrictions, default images, and
extensive Views support. ImageField does not provide a built-in thumbnail
solution, but complements the incredibly powerful thumbnail generation
module ImageCache.

Modules related to IMCE

IMCE is an image/file uploader and browser that supports personal
directories and quota. It is used for inline image/file insertion into
textareas and as a file browser in many popular rich text editors such
as FCKEditor.

GPS and EXIF

Drupal provides many modules that define locations and display them on maps.
However, there is still no way to extract EXIF GPS coordinates from image files
to display them on the map. There are a few most promising (but still non-functional) combinations of modules to do this: