Urban Decay 24/7 Eyeliner Pencils are one of the best, long lasting pencils, which you can find at: http://sephora.com/browse/product.jhtml?id=P133707
Also Buxom Insider Eyeliner is a long lasting pencil for both the inner and outer rims of the eyes. You can find it at: http://sephora.com/browse/product.jhtml?id=P243800
I hope this helps you.
I have the same problem! OFten times eyeliners rub or wear off because the eyelids produce oils and the makeup just runs off. The solution is to first prep the eyelid area by using a primer such as Urban decay eyelid primer. You can also use your regular foundation primer (I recommend smashbox photofinish light) and apply a small amount to your eyelids and blend. I also find that eyeliners tend to bond better on non-naked lids, so if I don't want a very obviously shaded lid, I lightly dust my eyelids with a shade of eyeshadow that is close to my skin tone or a nude tone. I then apply the eyeliner on top. Pencil liners tend to smudge easier than gel or liquid liners. I really like Kat Von D liquid liner in Trooper. It doesn't stray or seep and the liner has a great brush that makes application so easy. I used to use Stila smudge pot in black and apply with a flat liner brush, but this takes some technique. I found the Kat Von D liner so super easy to use. Hope this helps! have fun!
OMG I love Urban Decay eyeliner and shadow!!!!!!! With the Urban Decay primer potion (which in my opinion is the best ever) and the Urban Decay 24/7 waterproof eyeliner you will be set! Plus the 24/7 liner glides on like butter...couldnt ask for much more from an eyeliner Hope this is helpful.
Here is a link to a great kit UD offers that comes in tons of great colors...I find that they are fun to have around even though I wouldn't normally buy them separately. But the kit still has your basic colors as well
You cannot go wrong with Urban Decay 24/7....
.... i especially like the Urban Decay Ink for Eyes.....
Try the bobbi brown gel liner, long wearing.
Or the Urban Decay pencil, waterproof.
Dust a little loose powder on lids, to absorb excess oils, if you are not wearing an eyeshadow. You can also prime eyes with an eyeshadow base.
This will discourage oil break through, to keep liner in place.