E' abbastanza ovvio che se quel codice si trova nella stessa pagina del form, al primo accesso ti stampi il messaggio.
La prima volta che accedi alla pagina, sicuramente $_POST non esiste ancora visto che il form non è stato inviato, dunque l'if si ritrova con la condizione verificata ($_POST['nome'] non è settata) e ti stampa il messaggio.

2 possibilità:
1) metti come action del form una pagina diversa ed i controlli li fai lì
2) devi mettere un if che decida se eseguire i controlli o no, ad esempio, supponendo che il name del pulsante submit sia 'submit'
Codice PHP:
// se $_POST['submit'] esiste, vuol dire che il form è stato inviato
// e si possono eseguire i controlli
if ( isset($_POST['submit'] )
{
    
// esegui i controlli