We did it last year with a swerve drive. It works reasonably well. Did not have any problems with gyro drift, it was mostly irrelevant.
Implementation for an omnidrive robot is pretty trivial, its just a little bit of trig. Our code release (see
http://www.virtualroadside.com/FRC/) for last year has an implementation by one of our students, he called it 'CompassDrive'. He implemented it for a 2-motor prototype also, and that was a little bit more involved due to trying to correct for drift and such.
What we found is that some people like it, and some people don't. So just make sure you implement both methods of control and see which one works best for your drivers.