Use CorsixTH with it. It makes Theme Hospital more compatible (have less or no crashes) with modern OSes like WIndows 7. It is designed for modern OSes.
About CorsixTH (from https://code.google.com/p/corsix-th/wiki/AboutPlayableBeta1 ):
"CorsixTH, an open source clone of the classic game Theme Hospital, has released Playable Beta 1, making it the first open source Theme Hospital clone to reach playable status. Representing five months of development since the project launched, CorsixTH Playable Beta 1 implements many of the features of the original game, and runs natively on Windows, Linux, and OS X. This intent of this release is to increase awareness of CorsixTH, and to encourage more developers to assist in the project.
CorsixTH is an open source project with the aim of cloning, and then enhancing, Bullfrog’s hit 1997 game Theme Hospital. It is written in a mixture of C++ and Lua, and is made available under the MIT/X license. With baseline requirements of just SDL and Lua, CorsixTH can run natively on all major operating systems, and could be easily ported to other environments. Similar to how OpenTTD started, CorsixTH requires some of the original game data files to provide graphics and sounds.
Since the project went public on July 24th 2009, five months of development have passed. These five months have seen over 250 subversion commits, over 90 issues, and have seen the core development team grow from one person to four people. Despite this, the project is looking for more developers to report bugs and submit code. Artists interested in creating a new set of graphics, and hence removing the dependency on the original game data, are also welcomed. Users who are neither programmers nor artists are invited to just enjoy playing with the release."
CorsixTH website: http://code.google.com/p/corsix-th/ (download the latest version here)
Facebook: https://www.facebook.com/CorsixTH
Twitter: https://twitter.com/CorsixTH
_________
If you don't want to install CorsixTH, try running the game as an administrator (right click the game's .EXE file and then go to Properties->Compatibility->Priviledge Level) and in Windows 98 compatibility mode (if it doesn't work, try Windows 95 compatibility mode). If it still doesn't work or you are still having problems, try disabling desktop composition, disabling visual themes, display scaling on high DPI settings, running in 256 colors and in 640x480 resolution.
Another thing to make sure is: that you have the latest version of DirectX 9.0c, the June 2010 update (needed by old games, including Theme Hospital). As far as I know, the components of the latest version of DirectX 9 is not included by default with Vista and Windows 7 (even if DirectX 10 or DirectX 11 is already installed).
You can get it here:
Standalone Installer
http://www.filehippo.com/download_directx/
Web Installer
http://www.microsoft.com/downloads/details.aspx?familyid=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en
When installing old games like Theme Hospital in Windows Vista or 7, do not install in the 'Program Files' folder. Vista and Windows 7 have put restrictions on access to the 'Program Files' or 'Program Files (x86)' folder (this where 64 bit Windows installs 32 bit programs), which may cause incompatibilities with older games. I personally install old games in the 'C:\Games\NameOfGameWithoutSpaces' folder (some old games might have issues if there are spaces in the game directory name).
Make sure you are using the latest updated version of Theme Hospital. I search for game updates at this website: http://patches-scrolls.de/