Just fixed this problem on my this on Ubuntu 10.04. The problem was caused by doing a backup with rsync of my home directory and filling the partition to 100%. The solution was to:
(1) boot from a disk to get a command line terminal up - in my case using GParted partition editor on a DVD.
(2) create a temp directory that will be used to mount the full partition on. Use a command something like -
sudo mkdir my_temp_dir.
(3) Use this temp directory to mount the full partition that exists on the pc hard disk. Use command something like -
sudo mount /dev/sda3 /home/user/my_temp_dir. That second argument is the location (in my case) of the partition that's full. GParted shows a helpful graphic to see what exists and the statuses of the hard disk partitions.
(4) Change directories to the offending directory where the backups are stored. Use command something like
(5) Using command ls -l convince yourself you know which directory to remove. (5) Remove the offending directory and the files it contains using command something like sudo rm -r my_large_dir. Caution required with this command - anything it removes isn't coming back - so be sure.
(6) When that command has executed then exit out of command line terminal, close Gparted (or whatever you've used) and remove disk.
(7) Boot as normal and Login should be possible.