Hola,
Yo procuro seguir estas "reglas":
1º El "collate" de la base de datos es UTF-8, y el de las tablas también
2º En el archivo ".htaccess" de Apache añado al principio "AddDefaultCharset utf-8"
3º Añado el "charset=utf-8" a la cabecera HTTP "Content-Type" y la envío
4º Hago lo propio con la meta etiqueta "Content Type" tanto en HTML como XML
5º Trabajo con archivos (código fuente) cuya codificación de caracteres es UTF-8
Y creo que no me quedo nada...
Edito: Tal vez debería añadir que hablo de cuando trabajo con PHP, MySQL, Apache...