Below are some nice console-replacements products that are more user-friendly than cmd.
As commented below, since Windows 7, all these shells are just an interface to conhost.exe, even powershell. For details, read What is conhost.exe and Why Is It Running.
Therefore, the consoles below only replace the default visual interface to conhost which is the one exhibited by cmd, and are only useful when directly invoked as programs.
They cannot be indirectly invoked, as when a console-executable such as diskpart is run, since this will invoke conhost, and conhost has its own I/O interface and API.
Here is what Microsoft says in Windows 7 / Windows Server 2008 R2: Console Host :
ConHost represents a permanent change in the way that console
application I/O is handled. There is no registry key or group policy
setting that can force Windows to revert back to “legacy mode” console
behavior.
The conclusion is that if you wish to replace the console in a deeper way than replacing
the cmd interface, then this is not possible. Microsoft has chosen this design as a security measure, and will not go back.
The only way I can think of changing the way conhost is behaving is to set a global system hook
on the conhost API. I don't know at all if this is possible and nobody has done it up till now
(or if they did they are not telling).
I also don't believe
that Microsoft will let you replace such a crucially important system file as conhost.exe
by a hacked version.
If replacing cmd is required, which resides in system32\cmd.exe, one needs to take ownership of the file and then rename it (cmd1.exe?), rename the console-replacement exe to cmd.exe and copy to system32 together with all the files it needs for it to work. This might cause problems if the replacement console does not support all the parameters that cmd does.
Another approach that works for .bat files, is to associate the new console with them. For this one needs to edit the registry key HKEY_CLASSES_ROOT\batfile\shell\open\command. See this article for some details.
Here is the list of consoles :
ColorConsole
FireCMD
PowerCmd
GS.EXE
PyCmd