To answer your question:
app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php
There are ways to 'fix' your problem:
Instruct whomever it is that opens these files to do it 'properly'. That means using their Excel style program as follows: 1) Start the Excel-style program, create a new 'sheet' on an existing spreadsheet or a new one, 2) import the csv file into a sheet (rather than clicking on it directly), 3) specify that the file to be imported is UTF-8 in the dialogue box presented.
There are advantages to this work-flow in that they can have a master document for the month and then import each sheet. At the end of the year that means 12 spreadsheets rather than 365.25 of them.
If that is going to be waaaaaay to difficult for them and they really are capable of only clicking on files with 'import file' being just beyond their abilities then you can do things on the Magento side.
Open up the CSV file and see if it has a utf-8 BOM header. This is three bytes at the start that identify the file as utf-8. http://en.wikipedia.org/wiki/Byte_order_mark
You will need to make sure that you open the file in some program that doesn't hide things - if you use linux 'octal dump' then you should have no problems. 'od -c {file} | more' will show you what there is at the start quite reliably.
You can then add the utf-8 BOM by copying app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php to app/code/local/Mage/Adminhtml/controllers/Sales/OrderController.php and then changing the export function to be something like this:
/**
* Export order grid to CSV format
*/
public function exportCsvAction()
{
$fileName = 'orders.csv';
$grid = $this->getLayout()->createBlock('adminhtml/sales_order_grid');
$utf8 = chr(239) . chr(187) . chr(191) . $grid->getCsvFile();
$this->_prepareDownloadResponse($fileName, $utf8);
}
If that actually works then the job is done. I don't think you can just override the above in your own module that easily.