I was having terrible trouble using send_file and the Content-Disposition header. I found that I needed to set the Content-Disposition header manually in the reponse object returned from send_file.
I think send_file() should be a one-stop-shop for sending files to the user. That means that it should also set all the headers you want for you. I guess my question would be why isn't it doing so, and made you specify the header yourself.
Do you mean that header and send_file should play well together like the OP is hoping, or that you have to accept whatever header set send_file sets for you?
Cheers,
Flavio.