DotNetNuke is great. It has a great established core, along with a fairly straight forward process for developing extended modules. You can use the already established DotNetNuke settings framework in order to facilitate settings for each instance of your own module.
We have a unique install in which we have central data that is shared by many custom modules. I needed a way to have specific settings per portal, so I built a custom settings library. I also wanted to be able to override these settings so I built in an XML parser to do so.
I found out the hard way that the settings table has an nvarchar size of 2000. This almost never affected us, since the XML is generally smaller than 2000 characters, but I had one setting that went over. It messed up my xml, and broke my module.
My immediate fix was to change the core database. I made the settings to be nvarchar(MAX), and set up the add and update stored procedures to accomodate them.
I believe the best way to fix the issue without changing the core is to create another table, which either has a text type or a varchar(MAX) as the value.