Overall, I cannot stress how the best way to avoid making it difficult, is to get it running on multiple platforms ASAP, and then keep testing on all platforms. It's easy to solve any platform problem when it comes up early, individually, and while working on the specific aspect of the application. It only becomes a problem when you have to deal with it all at once.
It's entirely dependent on what platform specific libraries you are using. I for instance wouldn't expect string manipulation to be an issue, as I normally see that done using c string libraries. or std::string.
Time is pretty common to be done in a platform specific way.
Some developers like to use win32 File I/O.
Is the program a console program? Normally UI toolkits is the big and difficult one.
Other then that, anything that deals with file paths is generally suspect, slashes going the wrong way, case sensitivity, etc.
edit: I was under the impression that you were porting an app, not writing one from scratch. It'd be very helpful if you would outline the things your app does.
But in general use std classes, or standard C functions, if you find you've included "windows.h" anywhere in a non-platform specific file you're probably doing something wrong is the basic just. As mentioned elsewhere, you could use boost but for a program that's only 1000 lines or so, it's doubtful that you will need it IMO.