Default output path calculation
Glad the first shot worked. Tells us there's something with the default path knit tries on your system that causes the failure. The default output path is calculated from the input file and working directory.
Non-solutions
Trying to set the working directory with setwd() before you use the knit button is not going to work as the button starts a new child process that is not inheriting your working environment.
You might also be tempted to try mucking about with the knitr::opts$set('output.dir' = "/path/to/some/directory") , but that will be overwritten by this line.
Band Aids
Move the project
The easiest fix might be to move the project to a less offensive directory.
Undocumented knit hook
On a document by document basis, you can change the function the knit button invokes. As mentioned in this rmarkdown issue and a SO post, there exists the knit hook for the front matter of Rmarkdown documents. It has to be a function written on one line, but you could use it to hard code the ouput path, and it should replace the call the knit button makes. It's not a great fix, but it appears to get the job done.
---
title: "Knit Hook Example"
author: "grosscol"
knit: (function(inputFile, encoding) { rmarkdown::render(inputFile, encoding = encoding, output_dir = '/your/alternate/path') })
output: html_document
---
## Demo Content
Auribus teneo lupum...