As part of a plan to move from a dedicated panel to use a Rpi for controlling my model railway set, I have been experimenting with getting the I2C interface on a RPi working using a MCP23017 chip.
In simple terms I could see that I was going to need more digital inputs and outputs at some stage so it made sense to add them now. I have to say it was all really very straight forward.
The picture on the right is the completed add-on board with a MCP23017, the smaller chip is a 74HC244. This buffers the 8 basic GPIO pins, to drive an existing multiplex controller on the railway set. The 74HC244 runs from the 5volt rail giving me a full 5V drive output which helps get over the voltage drop between the Rpi and multiplex controller (it also protects the Rpi if something gets accidentally shorted out).
Have a look at my Random Pi notes page for some basic instructions to get the I2C port working on a Raspberry Pi.