Why doesn't this work? Once I hit enter (cin.get()) I trigger a break point. I can omit line 26 and 29 and have no problems. I can omit line 10, and even with memory leaking at least I don't hit the break point.
This is happening because Word doesn't have a valid copy constructor. In the call to push_back, the list gets a copy of myWord. Since you didn't provide a copy constructor, the default is used so this copy would share the same char * word as myWord. When the list gets destroyed, that char * word gets deleted and that same char * word also gets deleted when main finishes (in the destructor of myWord).
Oh, and there are some built-in functions, i.e. strlen and strcpy for doing what you're doing in makeWord.
And you might as well give that object an overloaded assignment operator as well.