I have though about this very much, and come up with what i consider an adequate solution (for now)
let me prefix this by saying... i don't want to consider overlaying html DIVs with javascript as this sounds like a nightmare to me (though i hear it can be done!)
i have extended a Button control to fire a 'Long Click' event. 600 milliseconds works pretty good. when a user clicks the button and holds the left mouse button down, after the duration has elapsed i open a Popup control with top left positioned at the mouse. anything (e.g. buttons, hyperlinks, etc) can be put in the popup.
Currently i use this on a TreeView, so that users can click-hold on a treeview item and get a context menu that varies depending on the item.
it ends up being quite intuitive and user friendly...
i am more than happy to share the code, though it doesn't lend itself to being pasted in a forum. i'll provide a link if there is interest.
as a question to the Silverlight People... Flash 10 allows developers to add items to the rightclick context menu... when can we have this in Silverlight?
--
Tom