1) La base sería lo mismo (el fopen() .. fwrite ..) pero lo que escribas: tus datos .. le tendrías que añadir los comandos/funciones del formato Word (que no tengo ni idea como es) .. al igual que si quieres dar formato a un texto para un navegador usas HTML ..
2) "abrir" (entiendo leerlo con PHP para extraer datos de ese .doc) .. En principio si .. como cualquier otro archivo via file() o fopen() en modo lectura .. El problema es "lo que vas a leer" .. Necesitarías "interpretar" el formato própio del "Word" ..
(si con "abrir" te refieres a que el PC (navegador) se le abra el word con el documento .doc cargado .. Si, tambien lo puede hacer .. es justamente todo el tema de las cabeceras HTTP que te comenté como header("content-type: nomeacuerdo"); Pero lo que modifique quedará en el PC del usuario . .no en el servidor, para que quedará modificado en el servidor deberías usar COM)
Ahora .. Si tu PHP corre en Windows .. tienes las librerias y extensiones COM para trabajar con sofware M$ como Word .. Exell .. etc:
http://www.php.net/manual/en/ref.com.php
Por otro lado .. un Consejo:
Genera tus datos en formato PDF .. que es lo mas standar (con formato listo para impresión) que te puedes encontrar. PHP dispone de las librerias PDF lib para crear PDF dinámicos partiendo de tus datos .. dandole el formato que gustes de impresión.
http://www.php.net/manual/en/ref.pdf.php
Un saludo,