So we use Site Links for displaying forms / information. The problem with site links is you really don't know what the user is looking at.
Placing you form in a Html Portlet, you can scrap some information about the user and what they are looking at.
So for On Premise installation Site Links and Html Portlets are pretty easy to deploy. On Demand poses more of a challenge for scrapping information about what a user is looking at. You can work around it by placing your html / javascript page within the document store and using the link for it as the scr in an iframe.
I have been successful in pulling off a user's session information and a url scrape and passing that off to external site. That site take the information and via web services back to On Demand validates the user's request and if they have rights to use the external site features. Painful but works!
V/r,
Gene