I don't know if this helps, but you could check if the bullet is going to collide before actually moving it. If it would collide, then calculate how far the bullet is able to move before the collision would occur. This might help avoid the bullets jumping past their targets if they are moving too far. Use something like this:
// SimpleVector position is the bullet's position
// SimpleVector direction is the bullet's heading (normalized)
// float distance is how far you plan to move the bullet
// Calculate the distance to any target that would be hit:
float targetDistance = world.calcMinDistance( position, direction, distance );
// See if the bullet is going to collide with something:
if( targetDistance != Object3D.COLLISION_NONE )
{
// targetDistance is the distance at which the bullet will collide with the target
}
That won't make the bullets move smoothly, though. A visual trick might be to stretch the scale of the bullet (make it longer) when it has to jump a far distance. Movie special effects sometimes use this to trick the eye. You'd have to experiment with it to figure out how much to stretch the bullet given the distance, but it should work as long as the bullets are moving fast enough. I don't know how difficult something like that would be to program, though.