OIS is great but I had quiet a lot of troubles with it. There are two things anyone intending to use it should know.
First, you must turn on the XINPUT option into OISConfig.h if you want proper Xbox 360 pad support on Windows (it works like a charm when this option is on, but it has problems with the triggers when it isn't).
Second, multi platform keyboard support kinda sucks. Keyboard behavior is different on Windows and Linux (don't know about Mac yet since I don't have a Mac yet). On Windows OIS will give you keymap independent key code, that is if you press A on an azerty keyboard OIS will send you KC_Q. But on Linux it will give you keymap dependent codes so pressing A on any kind of keyboard will always send you KC_A.
But for some games you need both keymap dependent and independent codes. The later is great for directions keys (so that your qwerty WASD automatically becomes ZQSD on azerty). The former is great for commands key (ie press Ctrl-Z to undo whatever you just did in the level editor).
I also noticed some special keys are just ignored. I have a bépo keyboard (a French ergonomic layout), meaning I have an É key where you Z key is (assuming you have a qwerty). But OIS doesn't recognize it at all (it doesn't sent any event when it's pressed) which is troublesome.
I've been working on a patch to fix all these problems. But I must test it on Mac too before I can submit it on the OIS forum.