i've had this twice on my ed30 in the last year - thought i was going insane. Turns out its something to do with the engine cover not being seated properly and moving, and as the oil cap is two piece clipped together, the cover gets between the joint and pops the top off - first time it was lost, so i got a new one a few weeks later it happened again but got lodged between the engine and a hose so i managed to get it out but couldnt put it back together, in the end i just left it and kept an adjustable spanner in the boot to take the cap on and off.
you can but an R8 one made of aluminium but i chose not to as it was about £50