Stack Overflow has dozens of little features that add little magical touches around the site. They help you find things, they help you display things, and they make using the site fairly intuitive. Let's explore how to add a couple of these features to a Drupal site.
There is the Geshi Filter Module. This module supports syntax highlight for numerous languages, even some I think of as dead ones. The formatting it produces can be seen in RSS readers and it takes advantage of Drupals filter caching system which is good for performance.
Installing the Geshi Filter module is fairly straight forward. Install the module and follow its instructions on installing the 3rd party Geshi library. Without the library it wont work.
After installing the module go to Administer > Site configuration > GeSHi Filter where you can configure the settings. You can configure the languages to highlight, the HTML tags to enclose the code in, and a bunch of other options.
Then go to Administer > Site configuration > Input formats, select the Input format you want to add it to, and add the Geshi filter.
Tags provide a simple way to navigate the site. Unlike a forum with a set architecture there isn't a set architecture in a Stack Overflow like setup. This is where tags come it. They provide a way to navigate the site and find what you're looking for.
Tagging in Drupal is there out of the box with the Taxonomy module. Set it up with free tagging on the Question content type. Free tagging is nice but its not always easy to find tags others are using. This is where the Suggested Terms module comes in handy. It suggests popular terms to use.
Both Drupal and Stack Overflow have loads of little niceties. At this point we've built out all the complex parts that aren't intuitive with core or other popular modules.