Buy a waterproof liner or one that claims to last for 24 hours. Tons of eyeliners go on well, but at the first sign of a little moisture, they smear and run. Avoid this by being proactive and snagging yourself a liner that is specially formulated to stay put. You can find waterproof and 24-hour liner at any drugstore or beauty supply store.
Try a little bit of pressed powder. Eyeliner usually starts to smear when skin gets oily. If yours smears a lot, it's probably because your lids get oily a little faster. So, before you apply your liner, sweep on a pressed powder to soak up the oil on your lids.
Swipe on your eyeliner once you've applied your pressed powder Then finish off with another dusting of powder to set it in place. Just make sure you're putting on your powder before your mascara so your lashes won't get clumpy.
Apply a mattifying cream or eyelid primer if your eyelids are so oily that even a pressed powder won't do. You can find these at any beauty supply store. All you need is a small dollop spread evenly on the lid. Some primers go on a little bit white so if you're not planning to wear shadow too, take a small makeup brush and apply your cream just to the line where you would apply your liner. If you're wearing eyeshadow, apply it over the entire lid; the primer helps your shadow stay put just as well as your liner.
Bring a pack of face blotting tissues with you; they come in tiny containers that you can fit in even the smallest handbag. As you need to throughout the day, pull one out and press it on the eyelid to remove any built-up oil. It'll get rid of greasiness on the lid without removing any of your makeup.
If you're running around on a hot day or working out, expect that your liner might run a bit. Pack a Q-tip with you to brush away smeared liner, and bring a liner pencil for a quick touchup.