app/code/core/Mage/Core/Controller/Varien/Action.php file to
app/code/local/Mage/Core/Controller/Varien/Action.php should work. In Magento, there are 2 directories where controllers are placed; one is
controllers and the other one is
Controller (note the upper case and the singular).
controllers (note the small case and plural) directory is used intentionally to prevent the classes inside this directory from being autoloaded.
Magento's autoloader will always capitalise the first letter after underscore and it'll expect such a directory to exist. In this case, whenever a class
Mage_Core_Controller_Varien_Action is used, Magento will try to autoload the same by splitting the class name using underscore (_).
Hence this should work as expected. However if you try to use the same logic to override a controller from the
controllers (note the small case and plural) directory, it will not work and you need to create a module to override it.