perhaps you could try something like knoppix or DSL, and edit passwd and shadow manually....also, you will need sudo. If you don't have it this won't work.
i've never tried this but i imagine it would work.
boot it up:
mount your root partition, whatever it is...
Code:
# mount /dev/hda1 /mnt/hda1
then :
open up the sudoers file with vim or your favorite console editor.
add the line:
user ALL=NOPASSWD: ALL
where user is replaced with your normal username.
then, open up the /etc/shadow file.
change the hash to an asterisk. reboot normally, open up xterm, run "sudo su", and then run passwd. Then, Shut down your computer, get in your car, go to walmart and get a new keyboard for $10
OR... skip all that and go to walmart first.
If you try this, let me know, I'm curious as to whether or not it will work