A. A. The basic answer is yes as long as there are sufficient resources for all services and you don't mind putting several eggs in one basket.
There are no known compatibility problems with running SQL alongside any other Microsoft or 3rd party products - DBMS or otherwise.
The same holds true for the domain controller question - if you have a very large domain with lots of trusts and authentication requests then co-hosting SQL on it probably isn't a good idea. You WILL see articles from Microsoft saying that putting SQL Server on a DC is a no-no, but these articles date from when an NT machine was a 486/33 with 16Mb of ram, not the 4x800Mhz Zeon 4GB ram monsters currently available.
So give it a try and monitor the resources with NT Performance Monitor. Check cpu usage and waits, disk usage and waits, network usage and waits. The most important counter to check is memory pages/sec which will tell you if the memory is overcommitted and actually causing physical paging to disk. You may want to decrease the amount of memory (SQL 6.5 and below - SQL 7.0 autoconfigures) that SQL Server has to allow the other processes to get enough so that paging doesn't occur.
Applies to SQL Server versions : All
Related FAQ articles : n/a
Related Microsoft Kb articles : n/a
Other related information : n/a