Browsers choose how to process a downloaded resource based on the Content-Type of the resource, as identified in the http response that carried it (browsers also commonly inspect the content to figure out what it is, if there is no Content-Type field in the response).
So it is possible to get a browser to prompt to save any downloaded resource if you can change the Content-Type of the response. A Content-Type that you can rely on causing a resource to be saved as a file is the type "application/octet-stream".
You can change the Content-Type response header of http responses using a proxy server. Several proxy servers can rewrite headers. Our product WinGate provides the ability to modify response headers before the response is sent to the client. It is also free for 10 concurrent users, so may be free in your situation.
Firstly, you'd need to install the proxy, and set the clients to use it. If you already have a corporate proxy, you may need to configure WinGate's WWW proxy to connect out via that proxy.
Secondly, the configuration to rewrite the header. WinGate has a flow-chart GUI policy system, which you drag-drop elements onto in order to process events.
The event you want to process is the ProxyResponse event for your WWW proxy. In WinGate Management, you'd navigate to WinGate > Control Panel > Policy and click on the task "New Policy". Choose
Source Type: Any HTTPProxy and
Event Type: ProxyResponse and give it a name.
Clicking OK will open up the policy editor. Drag the event (e.g.
WWW Proxy Server: ProxyResponse) onto the worksheet at the top left, then drag a List Lookup Check onto the worksheet, it will pop an edit dialog, click the funny S button at the top left, and it will look like this, drill down to Request.URL and hit OK
Select "pattern match" for the matching method, and add a new value with the match spec for the URLs you want to alter the Content-Type for, with a wild-card if you need to match a URL with different query strings.
click ok, give it a name, then connect this item to the Event, by dragging from the RHS of the event onto the item.
Then drag an Expression evaluator item onto the worksheet. Enter the value
Response.Headers.Set("Content-Type","application/octet-stream"), uncheck "resolve expresson into true/false..."
Then connect this to the Yes output of the List check item. Click the Save button at the top, and it's live.
Your policy will look something like this.
Now when someone requests a URL that matches your matching value in the Check URL item, it will save it as a file.
Disclaimer: I work for Qbik who are the authors of WinGate