Attempting to execute a DELETE against a row in a table causes the "The query processor ran out of stack space during query optimization" error to be returned. This appears to occur with any table that has a significant number of integrity impositions, and it is irrelevant whether the subordinate tables contain any data. It is also irrelevant whether those integrity links cascade or do not, or set NULL, etc. Deleteing a single row based on its unique primary key consistently returns the error. The same database in SQL Server 2000 does not have this issue.
What is doubly frustrating about this is that the database, while old and somewhat crusty around the edges, is fairly simple overall, not leaving much room for model changes without essentially starting to drop internal integrity checks. Since these checks work fine for insertion and updates, and the data itself is made much more consistent by the checks, that option isn't of much value.