This is in response to polygonal booleans. I have no idea how things work for splines.
In my experience with a number of 3d packages there remains a few underlying concepts that are important in getting a boolean to work properly. My favorite response to an attempted boolean is when maya makes the model disappear. This is, unlike most other programs I have dealt with, the most benign. Other programs would just go away and ponder forever or bluescreen. In maya you can at least undo.
The first major reason a boolean will fail is coplanar (or even nearly coplanar) faces. If two faces are coplanar it won't be able to decide which one is inside/outside. The tolerance of the boolean function in this respect is also related to scale. If you are working with astronomically large numbers or incredibly small numbers the roundoff error may make planes look like they are identical. So, bottom line is that you need to jiggle things a bit. I've developed a sneaking suspicion that even having vertices that occupy the same point are bad. When you move things apart slightly you will need to scrutinize the result. Just remember that after you perform the operation you will need to go back and weld/merge verts so that you don't have messy geometry.
The second biggest issue, for me, is typically I have forgotten to check the direction of my normals. Make sure that both surfaces "make sense" as volumes. You might want to do a Edit Polygons>Normals>Conform before trying to boolean. Also, you may want to make sure that your shapes are complete volumes in and of themselves. I believe that before it attempts to create the boolean it a) triangulates your mesh (n-gons don't make sense for evaluating surfaces.)
does an automated closure of any open edges that might create non manifold geometry. This brings us to the third and equally important point.
Booleans don't seem to work on non manifold geometry. Just in case you aren't familiar with this term let me give a couple examples. One case is three polygons sharing the same edge. There will always be one odd normal which will make it impossible for the program to figure out which way is In/Out. It doesn't matter if this geometry is well outside of the area which you are trying to perform the function.
Another example of non manifold geometry is when you have two faces whose normals oppose each other. Imagine two polys that share an edge and lie on the xy plane. One normal is positive z, the other negative. You may know which one is in, but the algorhythm won't. Even turning on double sided will not fix this problem. The polys seem to have an inherent single sided orientation.
The last example of non manifold geometry is a "Bowtie" polygon. If you have a quad or foursided polygon in which all four points lie on a single plane you will end up with two triangles that are coplanar.
To conclude:
Make sure things aren't coplanar/co-verticular within reasonable scales.
Make sure that your normals are unified and facing a direction that makes sense.
Make sure you don't have nonmanifold geometry and that your volumes make sense.
Also, be sure to clean up after the operation. Booleans tend to leave a LOT of crap around the edges and create Hole geometry.
Those things make 97% of my booleans work. I really don't have much trouble at all. I used to complain about boolean tools all the way back when I was using Crystal 3D from AT&T. If you try to understand why it doesn't like what you are doing you will get along with it much better.
-William Mauritzen
Turbine Entertainment
-Bil
I am not in any way responsible for the earth crashing into the sun.