I have been a full offensive player for the whole time I have been playing. I never use stat changing moves such as Agility or Dragon Dance.
If you believe that using stat-changing moves is going to make you a less offensive player, then you haven't yet understood the purpose of status moves. All it will do is make you a better offensive player.
Quite literally: the teambuilding archetype that abuses set-up moves like Dragon Dance is called hyper offence. You certainly don't need to play hyper offence to utilise set-up moves, but set-up moves do enable the most aggressive playstyle in competitive Pokemon. There's not much that is passive about them.
Can anybody help me transition from being full offensive to a kind of passive/aggresive?
This requires understanding the purpose of using stat-changing moves to begin with. Typically, they are used for one of two purposes: either to break walls or to attempt a sweep. The timing of when you might use a boosting move varies according to your purpose, but the way you set it up is mostly the same.
If you are playing a balance or offence team archetype, then it is very important to understand 'momentum' in competitive play. Having momentum means that the Pokemon you have in play counters your opponent's Pokemon (or otherwise, threatens to do something that they can't afford). If you have momentum, then your opponent is on the back foot and needs to worry about what you are going to do them, not the other way around.
The intuitive way to capitalise on (or 'spend') momentum is to simply use the attack that is applying so much pressure to the opponent; perhaps it's a super-effective attack on a wall they need to keep, or a setup like Stealth Rock they happen to be weak to. Sometimes, this is the best and safest play. Alternatively, though, having momentum can allow you to make assertive plays that might win you the game. This is where boosting attacks often come into play.
Say that I have a Swords Dance Bisharp swapped in against my opponent's Jirachi. In this case, I have momentum, because my opponent is under immense pressure to switch into their Corviknight to evade Sucker Punch. I could simply use Sucker Punch (which is predictable), go for Knock Off instead (which is a nice middle ground)... or, I could use my boosting move, Swords Dance, and press my advantage. This would mean Corviknight no longer tanks Knock Off adequately and I can nuke it on the following turn.
The situation I described above could win me the game outright (if my opponent doesn't predict it!) because I would have a double-power STAB priority move ready to go on a tear. I'd need to be careful that my opponent doesn't have a counter to Bisharp -- say, for example, a fast Fighting-type -- but if I time the setup when I've weakened those counters, then SD Bisharp could clean up the game. Getting into this position, where you have a set-up sweeper or cleaner in play plus momentum plus all of the opponent's counters to said sweeper weakened, is the most basic 'win condition' of competitive teams.
So, how do you generate and keep momentum? Here are some ideas:
- making a correct switch to counter your opponent's Pokemon (thereby stealing momentum from them). This is sometimes risky, because most switch-in candidates are very obvious and can be predicted by your opponent. It likely involves your switch-in Pokemon taking a hit.
- letting your Pokemon faint, i.e. sacking it. If you don't need your Pokemon to win the game anymore, you can let it faint and then field your counter, possibly a stat-boosting Pokemon, risk-free. Though it sounds counter-intuitive, sacking Pokemon is key to 'hyper offence' team comps.
- double-switching. If you swap to a defensive Pokemon to sponge an attack, you might expect your opponent to switch next, so they can counter your new Pokemon. In this case, you can switch again, predicting their next switch-in and creating that 'win condition' situation.
- U-Turn, Volt Switch, Parting Shot, Teleport, and Baton Pass. These moves are special in that they allow you to switch out after seeing which Pokemon your opponent switches to (if any). Knowing for certain which Pokemon your opponent will field in the next turn allows you to get your counters into the game. If your Pokemon is slow, then they can even sponge an attack from the opponent (if they stay in), allowing you to swap safely into a set-up Pokemon. These moves are great for easing prediction.
The examples I used explained using set-up moves to attempt a sweep, but you can also use them simply to break walls, without the expectation that you'll sweep right then and there. For example, Nasty Plot Rotom-H is a popular wallbreaker, since it can use Nasty Plot against a Pokemon it counters and then blast whichever wall the opponent switches in. Again, you need to get Rotom into a position where it's safe to use Nasty Plot, i.e. when it has momentum, in order to do that... but that's the art of balance teams and offence teams in a nutshell. Predict your opponent and manoeuvre switches to get momentum, and then cash in by using super-effective attacks or setting up sweeps.
Hopefully, this was insightful to how you should use stat-changing moves -- in short, they're one way you can capitalise on momentum and potentially win games. If you can understand the function of stat-boosting moves, then making movesets with them should come pretty naturally.