tried out surface constraint ..still have to figure out a few things but it works great
[attachmentid=12630]
this was done by just moving aiming bone in an action ...added some dynamic constraints to get some secondary action...just a bit too fast..but follows the surface
here's the project
[attachmentid=12632]
wireframe view
[attachmentid=12633]
surface.mov
surf.zip
surf2.mov