There is no way you will ever get negative values of something Squared... So no ABS is needed.
Also, Why don't you get your target object, add a cheap limb, (use a plain or cube), and test on the limb.
And it will make your code so much easier to read. It will be a case of testing like so (pseudocode follows):
Distance between Bullet and limb 1 of monster < 1 then Monster Dead!
all you will test is not the monster x but the monster limb x etc.
Does this make sense? Limb are good and coincidence, All you wanna do really is check on limbs aint it?
Sorry for the pseudocode, dont have my darkedit here with me to write a wee code sample for ya... but in principle is an easy little routine and you have written most of it already.
Cheers
-------------------------------
Pointy birds, Oh pointy pointy
Anoint my head, Anointy 'nointy