user é uma palavra reservada e geralmente não é uma boa ideia usar palavras reservadas para identificadores (tabelas, colunas).
Se você insiste em fazer isso, você deve colocar o nome da mesa entre aspas duplas:
create table "user" (...);
Mas então você sempre precisa usar aspas duplas ao fazer referência à tabela. Além disso, o nome da tabela diferencia maiúsculas de minúsculas. "user"é um nome de tabela diferente de "User".
Se você quiser evitar muitos problemas, use um nome diferente. users,, user_account...
Mais detalhes sobre os identificadores citados podem ser encontrados no manual: http://www.postgresql.org/docs/current/static/sql-syntax Budapical.html#SQL-SYNTAX-IDENTIFIERS