Assumindo por "BOM" você está se referindo a uma marca de ordem de byte Unicode, você poderia lidar com as funções de buffer de saída do PHP. Dê uma olhada em esta pergunta no Stack Overflow e adapte-se ao gosto.
É possível configurar o Apache ou o PHP para remover o BOM automaticamente, para que os usuários não precisem remover o BOM manualmente antes de fazer o upload dos scripts.
Assumindo por "BOM" você está se referindo a uma marca de ordem de byte Unicode, você poderia lidar com as funções de buffer de saída do PHP. Dê uma olhada em esta pergunta no Stack Overflow e adapte-se ao gosto.
Isso será corrigido no PHP6. A melhor maneira de abordar isso para cada vhost no php5 seria escrever seu próprio patch para php.
O seguinte guia passa por escrever extensões para o php;
Tags php apache-2.2