When you click "Deploy" in the charm panel right now, you are taken to the charm's configuration page. The new change is that, at the same time, we should create a "ghost" service for the charm you are configuring. The look and feel may well change, but for now, you could use the normal service svg (or the version for the subordinate service, if appropriate) with an alpha channel at 50% or similar. This service should be draggable (separate bug/card?). If the user clicks on it, there should be no menu, and if the user doubleclicks on it, it should not route to the service view. If the user clicks on the "Cancel" button in the charm panel configuration screen, or otherwise leaves the configuration screen (such as by searching for another charm) the ghost should disappear. If they click the "Confirm" button in the charm panel configuration view, the ghost service should become the real service. We already create a service before we get a true confirmation for it, so this does have some prior art for you to work from. A pre-imp with Matt or Ben might be smart here.
Ben and Matt suggested adding a "ghosted" flag to the Service model, setting it to "true" on service creation, and checking it to both change the service visualizion and to block handling of clicks and double clicks.
On user confirmation, the environment will actually create the server in Juju, reset the "ghosted" flag in the service model and redraw the service.
This logic is already used when drawing temporary relations between services: while the user is dragging the relation, the services that are uneligible as relation ends are ghosted.