J2SE es la versión normal, con un conjunto de librerias para que un usuario en su casa o una empresa puedan hacer un programa normal que corra en un solo ordenador. Lleva los paquetes/librerias standard para aplicaciones en un solo ordenador y que tu esperarias encontrar en cualquier lenguaje de programación.
J2EE es la versión gorda, para programas que corren por cachos en varios ordenadores a la vez. Los paquetes/librerias de Java facilitan al programador el acceso a datos/código que tenga en otros ordenadores. El ejemplo más conocido de esto son las aplicaciones web. Imaginate que el servidor de páginas web tiene el código de una calculadora y varios usuarios, a través de su navegador, pueden usar dicha calculadora. J2EE facilita la creación de este tipo de aplicaciones. Otro ejemplo, imagina un torneo de ajedrez en internet. El servidor web contiene el juego de ajedrez y la base de datos con los resultados de varias partidas. Los jugadores, desde su casa con el navegador se conectan, se identifican y echan la partida. J2EE va un poco más allá, pero creo que estos ejemplos te aclararán el para qué sirve, ya que, por ejemplo, el servidor web de ajedrez podrían ser 10 ordenadores trabajando en conjunto para dar ese servicio (J2EE, con sus librerias/paquetes, facilita esta tarea de "distribución" del programa en varios ordenadores).
Se bueno.