Thinking "out of the box" is creativity. This isn't the same as abstract thinking, though you can "fake" being creative by seeing things are the same and proposing a solution that worked for the other problem.
It is my experience that purely abstract things are not usable in the real world by real people. They simply won't get it or making it do things is way too hard (inner platform effect). A good piece of software has a abstract core and a very concrete interface.