well they should be connecting to your app via an external url not "internalservername" correct?
or are you saying that when they are using your app via the external url, the resulting prints are using the internal url and therefore they get a not found error?
If it's the latter, you probably need to set your print task url to use the external url and not the internal.