I'd say the best way to check for an addon is to look for global variables it sets. Other than that you can either listen to EVENT_ADD_ON_LOADED and check the passed name (might fire too late for some cases though), or you asked the all-mighty ADDON_MANAGER to spill the secret:
Lua Code:
local manager = GetAddOnManager()
local function IsAddonRunning(addonName)
for i = 1, manager:GetNumAddOns() do
local name, _, _, _, _, state = manager:GetAddOnInfo(i)
if name == addonName and state == ADDON_STATE_ENABLED then
return true
end
end
return false
end