A ver HTTP_HOST sólo te va a dar "site.com", no todo lo que venga detrás... Para lo que quieres hacer deberías usar dos RewriteCond, uno que analice que HTTP_HOST es "site.com" (el que ya tenías) y otro a continuación que analice que REQUEST_URI es "/spanish", tras ellos pones el RewriteRule. Si no me he equivocado, sería así:
Código:
RewriteCond %{HTTP_HOST} ^site\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/spanish$ [NC]
RewriteRule ^(.*)$ http://www.site.com/spanish/$1 [R=301,L]