Are you running onmode -F? This causes informix to look at the virtual segment and free up some unused space. This might help, especially if you run it as an script every so often, that may allow you to stay up longer while you look for the source of the problem.
If you are rapidly adding new virtual segments my first thought is it may be a program logic issue like creating new cursors without closing them, did you change or add any new code?