If I understand your issue, you want a common category list that can be used by any module, since the OOTB category is scoped only to that particular module.
You can use any sort of control you like, bound to an external data source (or perhaps a Sitefinity list) and then persist it as a custom metafield with your content item. It's not particularly hard, either (heck, I can do it! ;^)
The important part is that your custom control needs to implement the ITextControl interface. Since Sitefinity doesn't know what property of your control exposes the selected category, you tell it by providing a Text property. See this post for an example:http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bmbtgh.aspx
Now, that example uses a static radio button list but you could use a dropdown or grid control that is databound to an external data source. Just make sure you have code that update the Text property when a value is selected, and it will be persisted with the content item.