One of the (many) gotchyas upgrading to Magento 1.4 is an issue with CMS pages that use a custom layout.
In 1.4 the template layout has changed materially. Previously you will have had a frontend/default/default theme, and probably a frontend/default/custom theme.
Now it's frontend/base/default and frontend/custom/default.
This will bite you, because magento stores the path of the custom theme in the database for each cms_page.
So if your old custom theme was default/custom, you will need to update the database to change it to custom/default or set it to null.
You can avoid this by editing your custom pages and manually saving each one, but that's painful.
Instead connect directly to your database and issue the query:
UPDATE cms_page SET custom_theme = 'custom/default' where custom_theme='default/custom';