You anticipated my next question: when a user generates the new document how is it possible to share that document with users that don't have access to the vsto assembly. You're saying that this isn't a problem if I use the template approach. However, when I combine the template with the external data that I'm bringing in through some web service calls, isn't it changing the template's contents? How does it get saved to a new instance document?
Also, are there any issues with using templates in SharePoint libraries as opposed to regular documents?
I can't answer the second question, but as to the first part:
In order to share documents with users who have no access at all to the VSTO assemblies (if you'd emailed them out-of-house, for example) you'd need to remove the customization parts within the document. That's usually done using the
ServerDocument part of VSTO.
When a user creates a new document from the template, any work he does in the document will not affect the template, itself. Essentially, Word creates a
copy of the template, as a new document, which must be saved (the Save As dialog box will appear when the user triggers the Save command). The document maintains a link to the template which lets it use code associated with the template (and thus the web services). But the code result is written to the document, not the template.
Cindy Meister, VSTO/Word MVP