[eluser]Narf[/eluser]
The answer is pretty simple - don't echo, use view files.
Nowadays, setting the character set via meta tags isn't really effective - most browsers seem to just ignore it. CodeIgniter takes care of that in a real HTTP Content-Type header, using the value that you've set with $config['charset'], but when you echo data from your controller - it gets outputted before response headers are sent and that breaks the whole thing.