If you are coming here for an extended stay and have an address (not a hotel) then you can open a bank account.
Once you have your bank account here you can transfer money from your UK account, you will need to ask the Canadian bank for their Swift Code and you will obviously need your account number. As a precaution you should also get the Transit number of the account and the banks institution number. You should also keep the banks full address (branch where you opened the account) to hand in case your UK bank asks for it.
It will typically cost around 15GBP to move the money (no real upper limit on how much you can move doing it this way). Your bank in Canada will also charge you around $15 to process the transfer.
Also, you should note that banks in Canada charge you for simply having an account. It is not like the UK where you only incur charges if you go into an overdraft or have an unauthorised negative balance. I say this because if you open an account here and the balance remains at 0 then it will be closed after about 3 months.
I have transfered around 70,000GBP from the UK to Canada in the last 12 months doing it the way I have outlined above. I have never had a problem doing it this way and the money was in my account in around 4 working days.
What you are looking for is forex companies. Just Google for forex and you will find lots. An example is a company called Moneycorp. You have to set up an account beforehand.
When you transfer from bank to bank, you are at their mercy as far as what exchange rate they will use. It is your UK bank that will determine that. Basically you ask them to buy $ for you and those dollars are then transferred to your Canadian account.
When you transfer large amounts, that exchange rate is critical. A difference of 2cents on the pound can translate to signifigant amounts. ie. on £100k it would mean a difference of $2k.
Usually a bank will not offer as good a rate as a forex company. You can try and negotiate with your bank though. Just don't expect your local branch teller to do this. You need to talk to head office. A forex company should offer you a rate that is about 1% below the Interbank rate. If you check moneycorp.com you will see a list of numbers scrolling across the screen. Those are the current Interbank rate. So if they are showing say $2.00 to 1£, you can expect to get $1.98 from them. Looking at this Interbank rate and then phoning your bank will let you know if the rate they are offering you is competitive or not. Don't let them put you off with the, 'the rate will depend on when you transfer'. Ask them to tell you the rate if you transferred right now.
Missed that last line on your last response steve.
Don't transfer the money to Canada until you have to. If you have a Nationwide Flex account and have opened an e-savings account, you can sit your funds in their earning 4.55 or 4.65% currerently. You won't get that on funds sitting in a Canadian bank. So why transfer until you need to?
If you have a Flex account and need some cash for day to day living, just withdraw using your Nationwide debit card. The exchange will be made at the FULL Interbank rate, no fees, no loss in exchange rate. It doesn't get any better than that.
If I could, I'd buy a house using a Nationwide debit card. It is the only way I have heard of that lets you transfer funds at the full Interbank rate. Their credit card also converts at the full Interbank Rate with no transaction fees.