Sounds quite a bit like what I'd like to achieve! Do you mean that I should try to make the walls "push" the enemies away, or find some way for the enemies to behave a bit differently when close to walls?
The basic idea is to use several sources to define the movement.
The path following (or where the bot wants to be/go) will provide the basic movement vector and then you simply add contributions from obstacles and other things you want to avoid (grenades, projectiles, team members and enemies). A moving vehicle could contribute in such a way that it makes the bot move out of the way, but should not contribute at all if the bot is behind it etc.
Then you simply normalize the resulting vector and use it as the new movement direction. Often this gives a nice and rather natural behavior, I think.