Although I am quite a fan of these old Raymarine/Autohelm/Raytheon fluxigate handbearing compass.
http://cgi.ebay.co.uk/RAYMARINE-AUTO...QQcmdZViewItem
Although they do need to be dead level to get an accurate bearing. (could be why Raymarine no longer make them)?
Having said that, They have a memory function which allows you to point it and hit the button, it memorises the bearing, do this 3 times and average them out. It can remember 9 in total allowing for a 3 point fix. Also has a stopwatch built in.
But you need to carry spare batteries! They normally sell for between £20 - £35 on ebay.