I am completely assertive with strangers and am totally confident in speaking my mind, however I am weaker with people I know, resulting in being a wibbling jelly with those closest to me!
I think some people are just born assertive (lucky them), others have to watch/learn/go on courses etc. I was brought up to be subservient to my parents and grandparents but taught to be assertive in life, which is why I'm a funny mix. I never thought of that before!
Anyway, there are a few things I find handy when faced with a situation calling for assertiveness:
Always remember you will probably never see them again. This never fails to make me braver.
Decide what you want/think and stick to it.
Think of people you know who you admire for their assertiveness, and imagine "being" them in the situation. What would they do/say etc.
You can almost always buy yourself time to decide. Have a few stock phrases to hand eg "I'll come back to you on that" or "I'll check my diary before I commit" etc.
Never apologise unless you have actually done wrong. Simple but true!!!!
(babyelephant rumbles off to Google "Assertiveness with Non-Strangers" courses)