I would not recommend creating a whole new module just to stick someone's picture under their username, no. That requires a whopping one whole line of code. Something like that I can't see making a module for.
Something that will add an entirely new functionality to the board should probably be a module I would think.
For instance. I thought of something I could use but would not be used by even 1% of all UBB users. Clearly it is not worth adding into the UBB if less then a small handful of users would turn it on. So, I'm making it an add-on module.
It will have a whole screen to itself in the control panel, it's own .cgi file to run it, and it's own template. I will include a script you can run from a browser that will back up any other files I might have to touch in order to hook it into my UBB and write in any changes I need. In this case I just need to add a few lines to the control panel navigation to access my new screen and modify one template. If you wish to uninstall then my script will just restore the backed up files.
It's harder work for the module writers but easier for a hacker and results in cleaner scripts if done right.
Of course there is one problem I can see coming.
If I add modules after mine and then want to uninstall mine I have to uninstall all the modules after mine, then uninstall mine and reinstall all of the others again. To me this is still better then trying to hand strip a hack out after I have long forgotten how I put it in and where all the modifications are.
------------------
Feed me Kelly's Roast Beef and Honey Dew coffee or you'll never see the next UBB release, mwahahahaha!