Really? C is quite possibly the most portable language which currently exists if you care to write it that way.
I nearly always use C for programs which must be portable due to the ease with which it can be made to run on a variety of platforms. I have quite a few which run on more than a few entirely different platforms with a simple recompile.
You can write C code which is tied to a specific operating system of course, but for any task where you have language options other than C you can generally write a portable C program which does that. The tasks which absolutely cannot be portable also tend to be the type of program where you have little to no choice of language anyway.
I also tend to pair it with another language for the UI unless I need something specific (although that really has more to do with my desire to hand projects off to someone else for minor UI tweaks, color changes, etc.) If you want portable UI code there are C libraries which can do that, although you end up with the same problems other languages with a portable UI library have (mainly lack of consistency with the rest of the UI, as you are not using the native API.)
If the project is the kind of thing where a web based UI is desirable, you can even make the UI language HTML. It is easy to have a C program bind to port 80 and respond to HTTP requests, or use CGI and a web server.