as scottfx said. If you are using the vinyl paint, sand the item first. Use 600 or 800 wet and dry with water. Give it all a light sand. Then clean it with wax and grease remover to get rid of any crap on the item so the paint can adhere. Also paint in very light coats. REMEMBER surface prep is the key
It take longer, but it won't come off. I have just finished painting my radio surround. No photos yet put I will post them if you want when it's completely finished.
I believe the duplicolor now has a vinyl primer that you can now use any of their normal car colours over the top.