The reason your module needs a helper class is the module argument in the system.xml file:
<cashondelivery translate="label" module="cashondelivery">
Magento passes the module argument to the Mage::helper() factory method. This in turn completes the class id to cashondelivery/data.
// identical to Mage::helper('cashondelivery/data');
Now Magento checks for the class prefix to use by looking for the node global/helpers/cashondelivery/class which is missing.
Rather straightforward so far, but here is where it might be a little confusing for some.
If Magento doesn't find a helper class prefix, it tries to makes one up by prefixing the class id with mage_ and appending _helper.
So this gives you mage_cashondelivery_helper as the class prefix, and mage_cashondelivery_helper_data as the full class name.
The autoloader turns this into Mage/Cashondelivery/Helper/Data.php, which can't be found, and hence the exception you are experiencing.
Besides creating the Companyname_Cashondelivery_Helper_Data class, you need to add the class group mapping to your config.xml file as follows:
Thanks vinai. That problem solved. I have added the xml code in config.xml. But I am wondering why Am I this error for the same above code. Fatal error: Call to a member function toOptionArray() on a non-object in D:\xampp\htdocs\magento\app\code\core\Mage\Adminhtml\Block\System\Config\Form.php on line 421
Thanks a lottttttttttt, dude. I was going crazy about this. Your post has been very helpful.
This is a really clear explanation of what Magento is trying to do here - helped me a lot with my Namespace_MixedCaseModuleName and getting a helpers reference.