Guarda ... ho scritto queste linee di codice preparando correttamente le strutture e accedendo come ti ho detto ... e naturalmente funziona ...

codice:
   node l = new _node;
   l->name = new char[20];
   strcpy(l->name, "Paolo Rossi");

   list nl = new NodoLista;
   nl->value = l;
   nl->next = NULL;

   node root = new _node;
   root->children = nl;

   //////////////////////////////////////////
   node FIGLIO = (node)root->children->value;
   printf("%s\n", FIGLIO->name);
   //////////////////////////////////////////

   delete nl;
   delete l;
   delete root;
Ho solo fatto la distinzione nel nome della struttura _node e quella del suo puntatore node, ma non e' questo il problema.

Se non usi C++ ma C, allora usa malloc e free ...