Your Apache server is up-to-date, and should support everything you need. However, for mod_rewrite to work, you need to have that module loaded on the server. In addition, you need the privelege to use it. Ask your hosting service or sysadmin to check on that. You can look up AllowOverride in the on-line Apache Server documentation [httpd.apache.org] for more background.
Your site's raw error log should show an error entry when you get that 500-Server Error - What does it say?
Just looking at what you've got, I'd recommend surrounding all user-agent strings which contain spaces or any other special characters, such as colon, slash, period, etc. with double quotes. A space or any other character that has special meaning to SetEnvIf will cause a 500 error if the string's not delimited by quotes. Also, you might lowercase the environment variable "HTTP_REFERER" in the first line, though I doubt that's the problem.
You could also go through all the SetEnvIf lines and comment them out with a "#", then uncomment them one-at-a-time or in groups to find the ones causing problems. Start small and build up, in other words.
If this doesn't help, please check your raw error log and re-post with more information about what works and what doesn't work in your .htaccess file. There are many, many variations in what resources and priveleges hosting companies grant their customers.