I agree that the bConfigurationValue trick isn't really appropriate for more than initial debugging. There are a couple of other options:
1) Recompile the kernel with the new current limit, or
2) Add udev rules for each device that exceeds the kernel power limit.
The kernel limit is set in spitz.c, and by default is at 150mA. Fixing this is the best all-round option, except that compiling a Z kernel is a pain.
The udev option is the proper way of applying the bConfigurationValue trick, and only has to be done once for each device. You want to make a new file called 99-usbpower.rules or similar in /etc/udev/rules.d, containing rules like this (note the =='s and ='s):
SUBSYSTEM=="usb", ATTR{idVendor}=="vendorid", ATTR{idProduct}=="productid", ATTR{bConfigurationValue}=1
Then do a "udevcontrol reload_rules". The rule will forcibly select device configuration 1 whenever the usb device with the specified vendor and product id is inserted.
I've been using the udev option for my Huawei 3G modem. It's too bad I didn't use a small enough resistor when doing the usb power mod, because I still can't get enough current - it's enough to initialise the device now, but not enough to turn the transmitter on! I'm going to have to pull my Z apart again *shudder*