How should I include my custom enums class in my plugin? If I was going to include my custom enums for my plugin, should the include be outside of my plugin class or use the init() method. What is the best way to handle this and are there any pros or cons to either? 

Current method:

&lt;?php
namespace Craft;

// include enums for custom statuses
include(dirname(__FILE__) . '/enums/PluginNameEnums.php');

class PluginNamePlugin extends BasePlugin
{
    // etc
}
I suppose it depends on what the code is going to be doing.  If it's standard "business logic" code related to your plugin, then it would make more sense to add it to your plugin's services, which is where we recommend that type of logic goes.  There, it handles the interactions with the database and returns the appropriate models back to your plugin's controllers and/or template variables.

Adding it to your service layer will also get you the added benefit of Craft auto-uploading the classes for you as well and attaching them to the global craft() instance as craft()-&gt;pluginHandle

Update

If we're talking about enums, I'd follow Craft's example and create an enums folder for your plugin.  From your plugin's init() method, simply import your custom enums:

public function init()
{
    Craft::import('plugins.yourPluginHandle.enums.MyCustomEnum');
}