Zope is difficult to describe, since it works in a way quite different from other application servers (at least the ones that I have encountered - I don't know anything about PHPNuke). Firstly, as sfb says, it stores everything in an object database (called ZODB) instead of on the filesystem. Every URL you access on a Zope system is resolved to an object. I will use as an example pages on the Zope.org website, since that is the most obvious public site that is Zope powered.
OK, lets take as our example this URL:
which is the starting page for The Zope Book. This is a reference to an object with the ID of 2_6Edition, which is in a folder called ZopeBook, which is in a folder called Books, etc. The folders are not directories, but are objects in the database so they can have arbitrary data associated with them in addition to the objects they contain.
The object 2_6Edition could be one of any number of types of object - it could be an HTML page, a Python script, a Perl script, a DTML page (a page using Zope's tag markup language), a ZPT page (a newer markup language), a structured text page (plain text that is converted to HTML using simple syntax rules), and so on. My guess is that it is another folder object containing an index_html file, which is displayed by default when you browse to a folder, in the same way that an index.html page is displayed in non-Zope systems. If you look at the page you will see that it contains a table of contents for the book. I suspect that these pages are all objects within the folder, and that the index_html object is generating the table dynamically from the folder contents. If a new chapter was added to the book then the contents page would not need to be updated manually.
If you had management rights to the folder you could open up a management screen in the browser and add & remove objects, rename objects, etc.
One of the unique features of Zope is its process of object inheritance, call acquisition in Zope-speak. If you look at the page I mentioned, you will see that there is a navigation bar down the left hand page. This will have been defined at the top level folder, and inherited (acquired) by all the folders below it. At any level you can override this inheritance so that you can change the look or behaviour of part of the object tree. In Object Oriented Programming terms acquisition is fully polymorphic. If you don't know what that means don't worry about it - just take my word for it, it is powerful stuff.
Another example of acquisition is the page navigation for the book that appears on this page, and on all the book chapter pages. This will have been defined once (probably in this folder) and acquired down through the tree.
Virtually everything in Zope can be subject to acquisition. For example most objects can have a 'Title' property, which is the string to be displayed in the title bar of your browser if you point it to that object. If an object does not have a Title property set, then Zope uses the Title of the parent object, and so on up to the root folder.
This has barely scratched the surface of Zope. There is ZEO, which can distribute Zope over a server farm to handle huge amounts of traffic. There are hundreds of open source products available - plug in components that create new types of Zope objects. There are ZClasses, which let you create new types of objects without leaving the comfort of your browser. There is the Zope security model, which lets a user be given editing right to a subtree. There is the ability to undo changes or create the equivalent of branches in a source control system. Zope is Big. Zope is Complex. Zope is Powerful.
CMF and Plone are built on top of Zope and hide much of the complexity, while adding things like workflows - e.g. a user can submit a change to their part of the site, which will be queued to be approved by an editor before being made public.
The best way to find out more about Zope is to install it and play around. It comes with its own web server, so you do not need to mess around with installing Apache and editing config files to get it working. You do not even need to install Python - it is all included, and works straight out of the box.
Hope this helps.
Dave - The Developers' Coach