Sebbene Drupal sia definito come un sistema di gestione dei contenuti (CMS) , è anche un framework per la gestione dei contenuti (CMF).
In altre parole, a differenza di un tipico CMS, è più orientato alla configurabilità e alla personalizzazione.

Drupal non è orientato tanto alle funzionalità quanto alla struttura e all'interoperabilità tra componenti del sistema e moduli.
Non è un sistema "rigido" e finalizzato per un certo scopo prefissato: è una solida base su cui poter costruire progetti web anche molto complessi, composti da componenti pre-progettati (moduli) i quali possono essere utilizzati così come sono o possono essere ampiamente riconfigurati in base alle proprie esigenze.

Il design di Drupal offre quindi un'incredibile flessibilità, pur consentendo anche alle persone che non sono programmatori di creare potenti siti web: è naturale che una così alta configurabilità e personalizzazione richieda uno sforzo mentale iniziale superiore rispetto ad un sistema fortemente "specifico". Tuttavia, dopo aver investito un pò di tempo, vedrai che imparare a fare le cose "alla Drupal" ti aprirà un nuovo mondo di possibilità che non avresti mai immaginato di poter implementare senza l'utilizzo della programmazione personalizzata.

Il concetto di astrazione

Drupal utilizza un approccio "astratto" alla gestione dei contenuti web e alle funzionalità. Esso tratta la maggior parte dei tipi di contenuto come variazioni dello stesso concetto: il nodo.
Pagine, blog e notizie sono tutti contenuti in un "oggetto" comune (il nodo appunto, che contiene informazioni strutturate come titolo, contenuto, autore etc..); la "mappa del sito" (l'architettura dell'informazione) è un livello sovrapposto che è progettato e gestito separatamente tramite il sistema dei menù; altri elementi (temi e moduli come Panels e Views) forniscono un altro livello che si occupa della visualizzazione su schermo dei contenuti.
Mantenere separati tali livelli ti permette un'incredibile flessibilità nella gestione dei contenuti: puoi mostrarli, nasconderli, raggrupparli in base alle utenze, alla rilevanza, etc..
L'utilizzo del concetto astratto di nodo per tutti i contenuti, ti permette di gestirli, combinarli e relazionarli allo stesso modo, utilizzando un metodo comune.
Invece di creare soluzioni "specifiche" per ogni cosa, i sistemi e le metodologie di un CMF sono costruite per gestire compiti in modo "generalizzato": una volta che impari ad utilizzare una metodologia particolare la puoi utilizzare in domini applicativi differenti per "relazionare" le cose in nuovi modi creativi.

Inizia rapidamente, personalizza ampiamente

Drupal ti permette, con un upload tramite FTP e con una breve configurazione tramite una semplice interfaccia web, di avere un sito operativo in poco tempo. Inoltre, la gestione "base" (inclusa nell'installazione) dei temi, degli utenti, dei forum, dei book, dei commenti, dei sondaggi, delle categorie di contenuto, ti permette di avere da subito tutto quello che ti occorre per gestire il tuo sito web.
Quando (e se) ti servirà di più, potrai in ogni momento estendere la tua installazione con una grande varietà di moduli messi a disposizione dalla comunità di Drupal (http://drupal.org/project/Modules).

La struttura di Drupal

Drupal deve la sua flessibilità e organizzazione alla divisione in cinque livelli sovrapposti, ben distinti l'uno dall'altro:

1. Livello dati.

Il cuore del sistema: tutto ciò che è visualizzato nel sito, deve prima essere inserito come dato.

2. Livello moduli.

I moduli funzionali sono i plug-in che sono o parte del core di Drupal oppure sono elementi creati dai membri della comunità di Drupal. I moduli forniscono funzionalità diverse, che permettono di espandere le capacità del tuo sito (campi personalizzati per i nodi, calendari degli eventi, e-commerce, viste personalizzate dei dati e molto altro ancora).

3. Livello blocchi e menù.

I blocchi spesso sono messi a disposizione da moduli specifici oppure possono essere creati per mostrare quello che vuoi: essi possono essere collocati in diversi punti (regioni) del tuo tema.
I blocchi possono essere configurati per essere visibili solo su alcune pagine o solo a determinati utenti.

4. Livello permessi utente.

La configurazione dei permessi ti permette di determinare "chi" può fare "cosa" nel tuo sistema.
Puoi assegnare permessi (creare nuove pagine, eliminare pagine esistenti, etc..) a ruoli specifici (utente anonimo, autenticato, redattore, amministratore, etc...). Puoi assegnare ad ogni utente uno o più ruoli, in modo concedergli i relativi permessi associati.

5. Livello modello.

Nello strato più superficiale si trova il modello del sito (template). Questo è costituito prevalentemente di XHTML e CSS, con alcune parti di PHP necessarie ad inserire nelle posizioni corrette.

Capire che tutti i flussi di informazioni passano attraverso tali livelli, ti permette di interagire correttamente con il sistema e di "localizzare" velocemente eventuali errori di configurazione del sistema. Se, ad esempio, un modulo non funziona come ti aspetti, dovrai chiederti se hai attivato i blocchi necessari, se hai assegnato agli utenti i giusti permessi e così via.

Approfondimenti e fonti

"The Drupal overview" http://drupal.org/getting-started/before/overview (lingua inglese).