For your specific problem, why not just mount a different disk / partition onto /opt? Celejar
That's a good idea. To the OP, if you don't have any spare partition, but have room in /usr, you could create a sparse file. Format and loopback mount it to /opt.