The implementation ultimately depends on how the plugin is written, but, normally, the system sends an MH Play Media command to the media plugin.
This gets routed into the Plugin's CreateMediaStream method, which creates a media stream.
This then gets routed into Plugin's the StartMedia method, which then figures out the commands it needs to send to play the stream (usually, finding the player devices for an entertainment area, and sending a Play Media command to them.)
You can see this in the various Plugin devices like Xine_Plugin, Game_Plugin, SmartQ_Plugin, Hulu_Plugin, etc.
Since XBMC will be most likely running on the media directors, and the media directors do the plumbing of exposing the media devices, you should just pass the file path that is sent through MH Play Media, straight to the player, as this will be a local path (e.g. /home/public/data/videos/blabla...)
Also, the XBMC Player device must have a Name device data. This field contains the WM_CLASS.WM_NAME for the window that Orbiter is to swallow and manage (so it can bring it to front when needed, push it back a layer when the orbiter menu needs to be displayed, etc.)... You can get this information by running wmctrl -l -x while xbmc is running. You'll see something like "XBMC.xbmc" or whatever, and this needs to be put into the Name device data, so that Orbiter can swallow the window.
-Thom