There are no user host files, a complex bind setup would work hosting the application behind a different internal ip... however... the application should be able to skip DNS...
If you are looking to do this for an application that is making http/https calls, you can skip the DNS entirely. When making a http request the domain is copied to the headers, you can skip this step by overriding the header...
for example;
wget --header="Host: www.example.com" "http://127.0.0.1/bob/is/cool"
This will send a http request to localhost, however the http request would be for www.example.com, not 127.0.0.1...
(bypassed dns and made a valid http call for the correct domain).
If for some reason it's an alternate tcp service that has no identifier like a host on the request, then a crazy bind setup would work, (deny the src ip of the application, it'll resolve on a different dns service).
Another solution would be using kernel firewall...
split the application out to a different lan or maybe loop back address, then you will be able to DNAT to a different IP based off the source packet address...