I have found that the best way for almost ANY NPC to attack is to set them to "whomever is closest". They will never stand there, they will go kick some ass!! This goes especially for melee guys like Sulik, Dogmeat and Goris. And I always set them to distance "Charge!", too. This ensures they fight!!!
As for the snipers, I always set them to "On your own" (and if that's not available, like in Lenny's case I think, I choose "Stay where you are"). And I always set them to attack "whomever is closest", with the exception of Marcus and Cassidy who are very strong so I set them to attack "the strongest".
It took me a long time and this is what works best for me... When I first started playing I would always tell everyone to "stay close to me" and "attack the strongest" (or something close to that if those were not available). Meh.