Ma scusa un attimo, al di là che non fai nessuno straccio di controllo su niente (quando esegui una query è d'obbligo attaccarci un die mysql_error();...), tu fai una cosa del genere:

Prima chiedi di selezionare tutti gli user con nick pari a $nick, e poi se ne trovi almeno 1 (spero per te che ne trovi 1 o nessuno, non più di uno con lo stesso nickname) dici che di utenti con quel nickname [n]non[/b] ne esistono!!!

Mettendo in ordine ste prime cose:
codice:
$sql_user_check = mysql_query("SELECT username FROM users WHERE username = '$nick'");
$user_check = mysql_num_rows($sql_user_check) or die (mysql_error());
if($user_check == 0) {
  echo"Il nome utente inserito non esiste in questo server";
}
Poi che è $nick == $user e l'altra query che dovrebbe fare? L'update di una tabella "messaggi"... ma ha una sola riga? Non manca un where con qualche condizione di dove andare a fare l'update? e poi serve fare l'update? io semplicemente inserirei una nuova riga con il nuovo messaggio, ne prenderei l'id e l'andrei a schiaffare in un'ipotetica tabella user_user con id_sender, id_recipient, id_messaggio