I've had great success with constant voltage charging, along with constant current when the voltage is below the voltage set-point.
If slightly less that full charge -- like, on the order of 5% to 20% less than a full 100%, is acceptable [i.e. a trade-off of slightly more battery vs expense/charging complexity], then this may be the technique for you!
I usually set the maximum charge voltage to around 1.43V per cell. For instance, for a 7 cell "9V" battery, the max charge voltage would be
7*1.43 = [b]10V[/b]
-- more like 1.429V
I've used an LM317L, for charging 8.4V "Transistor Batteries" [the ones with the snaps on top]. I set the regulation voltage to 10V, and the inherent 100mA [or so] current limiting sets the maximum charge current to around 0.5C.
Some may argue that such an arrangement will stress the LM317L. Maybe. But, I've had such chargers work for years, with no problems -- and, unless the battery is run down, considerably, it doesn't charge very long at that maximum rate. Most of the time it charges at the regulated voltage, so less than 100mA. As that battery charges, the current level gradually falls and eventually, after several hours, drops below the 0.05C rate, considered safe for NiMH trickle charge. And after even more time, the charge rate drops to near zero.
Another regulator that I've used is the STS L200CV, which is designed to both regulate voltage AND current. Thus, you can set whatever charge limitations the device is capable of.
This is, definitely, not the quickest way to charge a NiMH battery, but it's cheap, and easy, and a good compromise between performance and expense/complexity. Also, because the max charge current can be set high, for an initial 0.5C to 1.0C, you can get a "quick" 50ish% charge, so if you select a battery that will, at 50% charge, run your device for the desired duration, then a full charge will give you bonus run time. In other words, double the battery size, so you can use this cheaper/easier quick charging system -- may or may not be a practical solution, depending on how much more expensive a 2xlarger battery turns out to be.
I've also teamed the L200CV with an MCU that also monitors battery temperature, and even Discharge Voltage, with a battery disconnect to prevent it from discharging too low. Also, with an MCU, you can set a maximum charge time.
Also, this is probably best for cases where charging will occur at, or near room temperature.