I.e. I don't want to place the cf pages on their server or use iframes
What should I be looking into?
We've just finished building an enterprise-scale application, based on your concept. We subdivided the application into client and server code.
We developed the client code(what the browser interacts with) entirely in Ext JS. This makes business calls to the server layer, which we developed in ColdFusion 8.0.1. (We had considered using JQuery as an alternative to Ext JS. The colleague responsible for the client code opted for Ext JS).
There is no direct interaction whatsoever between the browser and ColdFusion. When one clicks on a button in a page in the browser, for example, Ext JS code converts the event into an HTTP request to ColdFusion. ColdFusion sends the response, which usually contains data, back to the Ext JS layer. That in turn converts the response into yet another browser event, say, a display of the data.
The client and server communicate by means of JSON packets. In this way, if you replaced ColdFusion at the server end with any other technology that can convert the requests into JSON responses, for example, Java, no one would notice anything at the client end.