
There are a number of UI elements in that screen shot that simply don't exist in the game as it is currently available to players - check boxes, for instance. Column headers are another good example. Previously, one of my compatriots had his work cut out for him simply making some windows (the pop-up item windows you get from clicking on a linked item) draggable. On the plus side, developing a decent UI gave me the opportunity to actually work on the UI code - not just adding elements to existing UI, but actually improving the library so that the better UI elements dumped into the social window are available for all future UI development.
To me, designing UI widgets that are general enough to be used in multiple situations, but specific enough that making it useful in each case doesn't require a ton of boilerplate code, is an interesting problem. For checkboxes, it's not that difficult: track 'on/off' status, and support a variety of textures for both situations (and some special situations just in case, like when the mouse hovers over an element, or the element has keyboard focus, etc.).
Column headers are a bit more interesting - you have to know what columns there are (preferably automatically, by virtue of putting them there in the design tool), you have to know what the most recent sort direction for each column is, and what the active sort criteria is. After that, it's a fairly simple matter to use that information to inform a StrictWeakOrdering functor with which to sort. Oh, and you have to update the UI based on sort status, but when you have the information, that's pretty easy. :-)


(better not let any of those human factors grad students talk you ears off, you'd be implementing all sorts of crazy schemes).
OK, that last one maybe isn't a good reason... and commercial engines provide a UI library that cover (b) for you already, which is one more reason to spend money on one. We're in the process of switching to such an engine, but replacing our entire game UI with something that uses its tools and libraries instead of the homegrown crap isn't yet in scope.
That leaves (a) as a really good reason to do it, but any game engine you can license should support skinning their UI library to your heart's content. So really, there isn't a good reason for anyone to do what I'm doing, unless such a person is in circumstances very similar to mine. :-)