I have been quite frustrated using generic Arduino Uno boards with peripherals such as digital compass, IMU, and nrf24L01 radios. The problem usually manifests itself as not enough usable I/O pins, not enough power or ground pins, wrong sex on headers, an most importantly,insufficient 3.3V power. I have boards from Dagu & RFRobot that satisfy most of these issues but I need the Uno pin format to cleanly interface with the Dagu Scamper ComMotion shield.
Solution. Design my own board.