Anselm gave you several hints for configuration of ssh. Unfortunately,
you do not run ssh but putty.
Tramp supports a method called "plinkx" (since Tramp 2.1.10, I
believe). This is used to take putty session names, instead of host
names.
So for every remote host you want to access, you might create a putty
session, which includes the host and user names. Let's call such a putty
session "somehost", with host name "somehost.somedomain" and user name
"cwithers". Likely, you have done this already.
Than you can add two rules:
(add-to-list 'tramp-default-proxies-alist
'(nil "\\`root\\'" "/plinkx:%h:"))
(add-to-list 'tramp-default-proxies-alist
'("\\`localhost\\'" "\\`root\\'" nil))