There are a number of ways to achieve this, but they require a familiarity with the Magento ecosystem. I would discourage using CSS to hide it from the end user, because someone that was slightly knowledgeable about CSS could easily unhide it and gain free access to purchase your products.
I also suggest not override core files (even if you are not editing them), as that will cause upgrade problems in the future.
The solid way:
My favorite method would be to enable to Check/Money order method, and create yourself a small module, like this. Neither of the previous considerations make any effect here.
/app/etc/modules/Company_Module.xml
<?xml version="1.0"?>
<config>
<modules>
<Company_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Payment/>
</depends>
</Company_Module>
</modules>
</config>
/app/code/local/Company/Module/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Company_Module>
<version>0.0.1</version>
</Company_Module>
</modules>
<global>
<models>
<Company_Module>
<class>Company_Module_Model</class>
</Company_Module>
</models>
<events>
<payment_method_is_active>
<observers>
<company_module>
<type>singleton</type>
<class>Company_Module/Observer</class>
<method>paymentMethodIsActive</method>
</company_module>
</observers>
</payment_method_is_active>
</events>
</global>
</config>
/app/code/local/Company/Module/Model/Observer.php
<?php
class Company_Module_Model_Observer
{
public function paymentMethodIsActive($observer)
{
$instance = $observer->getMethodInstance();
$result = $observer->getResult();
if ($instance->getCode() == "checkmo") {
if (Mage::app()->getStore()->isAdmin()) {
$result->isAvailable = true;
} else {
$result->isAvailable = false;
}
}
}
}