VACUUM FULL fails with 'ERROR: Check free disk space'
According to postgresql documentation:


  VACUUM FULL actively compacts tables by writing a complete new
  version of the table file with no dead space. This minimizes the size
  of the table, but can take a long time. It also requires extra disk
  space for the new copy of the table, until the operation completes.


So if you have one big table vacuum full can easily eat all your disk space. Maybe the best thing would be to do a full backup/restore - the result will be the same as if you did a vacuum full.