In my days of COBOL programming those kinds of people usually became managers. Anything to get their fingers away from the terminal keyboard.
To continue your post, you also have to be willing to re-invent yourself. I've been a software engineer for 32 years (taught myself just about every single IT job - whatever they needed), and worked my way into cloud computing. Cool stuff.
Same here. I got bored with some jobs, and moved on to other things. Started out with assembly programming, switched to high-level like FORTRAN and COBOL, then back to assembly on mainframes and system engineer work. IBM JES2 and CICS management. From there to networking, managing WANs and LANs, being a router manager. In the early days had to disassemble Cisco routers and swap chips for upgrades. Did integration between micro, mini and mainframes. Had major roles in building computer sites, including spec'ing out power requirements for data cabinets and then building same and populating with servers. Then on to Novell Netware, email servers, and NT & Windows servers management. Also did database management, Oracle, Tivoli, etc. Unless you move around, you will stagnate. Lot of co-workers didn't move around, doing the same thing for 35 years. Yuck.