Bene, si tratta semplicemente di qualche padding che andrebbe aggiustato meglio.

Nell'ordine, il primo spazio (quello più ampio, relativo all'elemento #nav) è dato (in parte) dal valore di default del padding per l'elemento <ul> (oltre i 5px che hai impostato per per gli elementi <li> al suo interno, e oltre i 10px per #nav, che indico più avanti). L'elemento <ul> infatti nasce per contenere una lista di elementi <li> che normalmente hanno una "indentazione" verso destra. Più precisamente si tratta di un valore applicato di default, su questo elemento, per la proprietà padding o, più precisamente, per la relativa sotto-proprietà padding-left.

Inoltre questo elemento potrebbe avere un valore di default anche per i margini.

Tieni conto che i valori di default (per i vari elementi HTML) possono differire da browser a browser.

Quindi, per prima cosa, puoi semplicemente impostare un valore 0 ad entrambe queste due proprietà (padding e margin) per ul.

In genere, per grossi progetti (ma anche per semplici progetti personali) si usa "normalizzare" tutte le proprietà utilizzando degli appositi file CSS che puoi trovare sotto il termine di "css normalize" o "css reset". Eventualmente puoi trovare degli ulteriori riferimenti al capitolo 6 dei link utili CSS.

In secondo luogo, gli altri due spazi (che nell'allegato hai segnato con i trattini rossi più corti) sono dati sempre dal padding; in questo caso non da un valore di default ma da quei 10px che hai impostato tu per il selettore "#nav, #feature, #footer", cosa che invece non hai fatto per ".column1, .column2, .column3"; ecco perché le colonne non hanno questo "spazio" a differenza degli altri elementi.

Si tratta quindi di impostare meglio questi valori del padding sui vari elementi.