Possibly, sorry that doesn't help a whole lot.
For your macro, you could change it a little.


/cast [nocombat,harm] Soul Fire; [combat,harm,nochanneling:Shadow Bolt] Shadow Bolt

The first part reads, if you're not in combat and the target is hostile, cast a Soul Fire.

The second part reads, if you are in combat, the target is hostile and you are not channeling shadow bolt (which is not a channel spell by the way), then shadow bolt.

Chance it to this:
/cast [nocombat,harm] Soul Fire; [combat,harm,nochanneling] Shadow Bolt

That way, it won't cast a Shadow Bolt, if you are channeling Drain Life or Drain Soul or Drain Mana.