Since we're looking at a referer, there's no telling what might be 'beyond' the protocol and the hostname at the beginning. Further using a ".*" pattern is going to force the matching engine to examine every character in the referrer string at least once. And finally, allowing the matching engine to scan the whole referrer string actually opens an exploitable hole, since all I --playing the part of Mr. "Bad Guy Hotlinker" for a moment here-- have to do is to, say, append a query string (with your domain in it) to my own page URL in order to hotlink your images. It is true that most hotlinkers aren't malicious enough to find out how to do this or to implement it, but the really malicious ones would make for a bigger problem. So a better sub-pattern is needed.
Also, you cannot redirect an image request to an HTML page unless the hotlinked image was to be loaded "naked" in a new tab or window from a clickable link on the hotlinking page. If loaded normally, using an <img src="image.jpg"> included-object tag, the browser will not be able to handle replacement of an image-type embedded object with a "whole new Web page." Simply put, "a Web page can't fit in the image box" on the hotlinking page. It simply can't work in this case, and this is a likely reason you're seeing the "download" prompt.
I suggest redirecting instead to a replacement image that scales well and that is readable over a wide range of aspect ratios that says "No Hotlinking" or something simple. If all of the hotlinked images that this replacement image might replace are big enough, then include a image of your site's URL as well (keep it short).
If this rule redirects all hotlinked image requests to a replacement .jpg image, than that replacement image request will be redirected as well (to itself, and repeatedly). An exclusion to allow the replacement image to load is needed to prevent an 'infinite' redirection loop in this case.
With all of the above in mind, the code would look like this:
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://([^.:/]+\.)?domain\.com
RewriteCond %{REQUEST_URI} !^/no_hotlinking\.jpg$
RewriteRule \.(jpe?g|gif|png|bmp)$ http://www.domain.com/no-hotlinking.jpg [NC,R=302,L]
The mp3 and other multimedia filetypes present a challenge. If you really need to replace those requests instead of out-right denying them with a 403, then I suppose you could record a nice little "Don't hotlink my stuff, my friends" jingle, or recite your site's URL, and then add another rule like the one above to replace hotlinked mp3s with your message.
While working on this, keep in mind that the hotlinked requests in your log are from people who are visiting the hotlinker's site, and it is not their fault that that site hotlinked your resources. So, err on the side of moderation when designing these 'alternate resources' to be served to hotlinked visitors... :)
When deciding what filetypes can be redirected to what replacement filetypes, I believe that you will find the initial part of the MIME-type identifiers to be most useful.. text/html and text/plain can replace each other, as can any of the image/xyz types, etc. When getting into some of the fancier types like video, be aware of cross-platform and cross-browser support issues. For example, you cannot assume that the visitor has a Flash or Windows Media player plug-in with any degree of certainty, so it's probably best to replace same with same for all of these.
Frankly, I don't bother with any of the above details, and simply use
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://([^.:/]+\.)?domain\.com
RewriteRule \.(gif|jpe?g|png|bmp|css|js|pdf|xls|doc|txt|swf|flv|wmv|avi|mov|mp[34g])$ - [F]
The only thought that goes into this approach is to order the filetypes roughly from most-frequently to least-frequently requested (check your 'stats' to determine this).
If you allow search engines to cache and display your images, you will need to add exclusions to these rules to allow that, since these are also hotlinked requests.
Other than that -- Check it, deny it, done.
Jim