<a href="http://www.petri.co.il/problems_with_exchange_2003_installed_on_domain_controllers.htm">This article</a> explains why you should not install exchange on a domain controller. This article specifies exchange 2003 and you did not say what version you want to install, however this is true no matter what version of exchange you are installing.
You should not use a DC for anything other than domain services, DNS & DHCP. File/print and other applications should be run on separate server for reliability and security purposes. Running other applications on the DC puts your entire organization at risk. It increases the time to recover if something happens to the DC and users lose access to other critical services.
<a href="http://www.microsoft.com/exchange/default.mspx">Exchange 2007</a> is the newest version of Exchange and that is what you should implement. It has been improved over Exchange 2003 and will provide longer service than a product that is 5 years old.
Although Exchange 2007 does offer improvements over Exchange 2003, most of the world is still using Exchange 2003, and Exchange 2003 is generally considered to be a more reliable product by most Exchange experts.
Having said that, it is possible to run Exchange 2003 on a Windows 2003 domain controller. In fact, that's what Microsoft does with Small Business Server. Even though it is possible to run Exchange 2003 on a domain controller, I would advise against doing so. Not only are there security issues that come into play, but memory also becomes an issue for an Exchange Server that is hosting larger numbers of mailboxes. Reboots also take a lot longer than they normally would if Exchange is running on a DC.
To answer your question, can you run Exchange on a DC? Yes. Should you? No, unless you are in an extremely small organization with extreme budget constraints.