The fire command just makes him fire in the air.
If its a cutsence, thers an easy way to get around this, just use the switchmove command.
For example if your bloke is lying, use something like
guy switchmove "LyingStillV1"
~0.001
guy fire "M16"
then switchback to standard animation so he can continut or pause /loop a script to continue.
or if hes standing
guy setunitpos "up" **
guy switchmove "CombatOptics"
~0.001
guy fire "M16"
etc
** (so he doesnt go straight down after u set the animation, if theres enemy about )
This will make the bloke fire in the direction hes facing rather than firing in the air. Although i havent tested it thorouthly I have used it quite effectivly for things like cutscenes when you want to appear to be giving suppressing fire etc when theres no enemy present.
If you use Toadlifes simple Face Direction script it will work even better, allowing you to face presicely and make ai do things like look like there actually shooting at those blue targets
[and without the need for invisible target addon]
Sorry i couldnt answer your main question, but this might help in some way.