1. A system for enabling a collaborative remote desktop environment, comprising: a computing device having a first application instance that has an associated state therewith, wherein the first application instance includes an input handler, an application logic component, an output handler, a current state component, and data files; a remote input handler at the computing device that receives an interaction request to interact with the first application instance, wherein the remote input handler communicates the interaction request to the current state component, and wherein the application logic component updates application state data at the current state component, and the current state component communicates the application state data, and the data files to the remote input handler; and a second application instance operating on the computing device or a different computing device, wherein the second application instance is associated with an application launcher, and wherein the application launcher receives the application state data and the data files from the first application instance, and wherein the application launcher instantiates the second application instance so that the second application instance's state is substantially identical to that of the first application instance.