Four metres is rather too much for I2C or USB. It's probably too much for 3.3V power as well although you could probably get away with passing 5V over the cable and regulating it down to 3.3V.
With all that in mind, I would tend toward using RS232 or the 5V alternative that the BBC Microcomputer used -- RS423 IIRC.
There are I/O boards out there that take an RS232 port and give 8 I/O pins, but they are for industrial applications and cost around $100.
To my mind, your best bet would be an AVRmega8 chip (£2.75 from RS). It has more than 8 I/O plus a UART. That's the same family of chip that is used in the Arduino, so community support is good and there's plenty of software available and you can write in C and compile it on the RaspPi. You'll need a programmer too, but those are also dirt cheap. (see http://www.ladyada.net/learn/avr/programmers.html
). You'll need to build the circuit on a piece of Veroboard but it's three chips (ATMega8, buffer and voltage regulator), a ceramic resonator for the ATMega clock and some resistors and capacitors. At the RaspPi end you'll just need a USB-serial adapter.
There are other technologies out there -- Ethernet or wireless (Bluetooth, Zigbee, WiFi) -- but they are more expensive and will cause problems getting power to the keypad or need special cabling. At least the Zigbee will need programming anyway.