Desde el punto de vista del usuario, no se puede evitar realmente que una URL recuperada de una etiqueta NFC se inicie en un navegador. Al descubrir una URL de este tipo, Android simplemente notifica a la aplicación que previamente registró su interés en ese tipo de datos procedentes de una etiqueta NFC (o muestra un selector de actividad si varias aplicaciones registraron un interés en ese tipo de datos).
Por lo tanto, es la aplicación del navegador web que registró su interés (a través de un filtro de intención en su AndroidManifest.xml) y normalmente no se puede 1 desactivar esto.
Sin embargo, desde el punto de vista de un programador, se puede evitar que una determinada URL sea manejada por un navegador web. Los navegadores web suelen registrarse para ser lanzados en todas las URLs "http://" y "https://". Puedes anular esto registrando tu aplicación para una URL más específica (es decir, una que incluya un nombre de host o incluso una ruta, por ejemplo http://www.example.com/ ). En ese caso, su aplicación tendrá automáticamente prioridad sobre el navegador web (no se mostrará el selector de actividad).
Respecto a tu idea con el BroadcastReceiver: Actualmente no es posible. Los eventos de descubrimiento de NFC, como el descubrimiento de una URL, sólo se envían a las actividades. Un receptor de difusión no puede recoger estos intentos. (Véase esta pregunta en Stackoverflow para una posible solución).
1 ) Tenga en cuenta que esto no es del todo cierto, ya que hay algunos medios para desactivar los filtros de intención de forma programada bajo ciertas condiciones.